everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
30 lines (28 loc) • 1.11 kB
JavaScript
import { rebuildOrderedConfig } from "../merge.mjs";
import { localConfigEntryPath } from "../config.mjs";
import { serializeAppDescriptorSource } from "../descriptor/serialize.mjs";
import { readFileSync, writeFileSync } from "node:fs";
import { join } from "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 = localConfigEntryPath(configDir);
if (entryPath?.endsWith(".app.ts")) {
writeFileSync(entryPath, serializeAppDescriptorSource(config));
return;
}
const filePath = join(configDir, "bos.config.json");
const ordered = rebuildOrderedConfig(config);
const next = `${JSON.stringify(ordered, null, 2)}\n`;
try {
if (readFileSync(filePath, "utf8") === next) return;
} catch {}
writeFileSync(filePath, next);
}
//#endregion
export { saveBosConfig };
//# sourceMappingURL=save-config.mjs.map