everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
30 lines (28 loc) • 1.19 kB
JavaScript
const require_merge = require('../merge.cjs');
const require_config = require('../config.cjs');
const require_serialize = require('../descriptor/serialize.cjs');
let node_fs = require("node:fs");
let node_path = require("node:path");
//#region src/utils/save-config.ts
/**
* Persists config changes onto the project's authored surface: the authored
* `bos.app.ts` descriptor when present (the serializer drops pipeline state —
* production URLs and integrity), else the legacy `bos.config.json` as-is.
*/
async function saveBosConfig(configDir, config) {
const entryPath = require_config.localConfigEntryPath(configDir);
if (entryPath?.endsWith(".app.ts")) {
(0, node_fs.writeFileSync)(entryPath, require_serialize.serializeAppDescriptorSource(config));
return;
}
const filePath = (0, node_path.join)(configDir, "bos.config.json");
const ordered = require_merge.rebuildOrderedConfig(config);
const next = `${JSON.stringify(ordered, null, 2)}\n`;
try {
if ((0, node_fs.readFileSync)(filePath, "utf8") === next) return;
} catch {}
(0, node_fs.writeFileSync)(filePath, next);
}
//#endregion
exports.saveBosConfig = saveBosConfig;
//# sourceMappingURL=save-config.cjs.map