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'
const ORDER_FULFILLMENT_BINDINGS_FILE_PATH = path.join(PROJECT_ROOT, 'data', 'order-fulfillment-bindings.json')
@@ -20,28 +20,19 @@ export function getLegacyOrderFulfillmentBindingConfigs() {
}
export function saveOrderFulfillmentBindingConfigs(rawValue) {
const normalized = normalizeOrderFulfillmentBindingConfigs(rawValue)
fs.mkdirSync(path.dirname(ORDER_FULFILLMENT_BINDINGS_FILE_PATH), { recursive: true })
fs.writeFileSync(
return writeJsonFile(
ORDER_FULFILLMENT_BINDINGS_FILE_PATH,
`${JSON.stringify(normalized, null, 2)}\n`,
'utf8',
rawValue,
normalizeOrderFulfillmentBindingConfigs,
)
return normalized
}
function loadOrderFulfillmentBindingConfigsFromFile() {
if (!fs.existsSync(ORDER_FULFILLMENT_BINDINGS_FILE_PATH)) {
return []
}
try {
const rawText = fs.readFileSync(ORDER_FULFILLMENT_BINDINGS_FILE_PATH, 'utf8')
const parsed = JSON.parse(rawText)
return normalizeOrderFulfillmentBindingConfigs(parsed)
} catch {
return []
}
return readJsonFile(
ORDER_FULFILLMENT_BINDINGS_FILE_PATH,
[],
normalizeOrderFulfillmentBindingConfigs,
)
}
function normalizeOrderFulfillmentBindingConfigs(rawValue) {