deduplicate json config file access

This commit is contained in:
yml
2026-05-21 18:54:41 +08:00
parent 17a615b8de
commit 589de4b50b
6 changed files with 79 additions and 86 deletions
@@ -1,7 +1,7 @@
import fs from "node:fs";
import path from "node:path";
import { PROJECT_ROOT } from "../../config/runtime.js";
import { readJsonFile, writeJsonFile } from "../../utils/json-file-store.js";
import { resolveKuaishouEticketShopConfig } from "../platforms/kuaishou-eticket/source-config-service.js";
const KUAISHOU_CLOUD_FULFILLMENT_FILE_PATH = path.join(
@@ -21,16 +21,11 @@ export function getKuaishouCloudFulfillmentConfig() {
}
export function saveKuaishouCloudFulfillmentConfig(rawValue) {
const normalized = normalizeKuaishouCloudFulfillmentConfig(rawValue);
fs.mkdirSync(path.dirname(KUAISHOU_CLOUD_FULFILLMENT_FILE_PATH), {
recursive: true,
});
fs.writeFileSync(
return writeJsonFile(
KUAISHOU_CLOUD_FULFILLMENT_FILE_PATH,
`${JSON.stringify(normalized, null, 2)}\n`,
"utf8"
rawValue,
normalizeKuaishouCloudFulfillmentConfig
);
return normalized;
}
export function mapKuaishouCloudFulfillmentItemsToBindings(config: JsonObject = {}) {
@@ -92,20 +87,11 @@ export function mapKuaishouCloudFulfillmentItemsToBindings(config: JsonObject =
}
function loadKuaishouCloudFulfillmentConfigFromFile() {
if (!fs.existsSync(KUAISHOU_CLOUD_FULFILLMENT_FILE_PATH)) {
return normalizeKuaishouCloudFulfillmentConfig({});
}
try {
const rawText = fs.readFileSync(
KUAISHOU_CLOUD_FULFILLMENT_FILE_PATH,
"utf8"
);
const parsed = JSON.parse(rawText);
return normalizeKuaishouCloudFulfillmentConfig(parsed);
} catch {
return normalizeKuaishouCloudFulfillmentConfig({});
}
return readJsonFile(
KUAISHOU_CLOUD_FULFILLMENT_FILE_PATH,
() => normalizeKuaishouCloudFulfillmentConfig({}),
normalizeKuaishouCloudFulfillmentConfig
);
}
function normalizeKuaishouCloudFulfillmentConfig(rawValue) {