UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

1 lines • 1.76 kB
{"version":3,"file":"save-config.mjs","names":[],"sources":["../../src/utils/save-config.ts"],"sourcesContent":["import { readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { localConfigEntryPath } from \"../config\";\nimport { serializeAppDescriptorSource } from \"../descriptor/serialize\";\nimport { rebuildOrderedConfig } from \"../merge\";\nimport type { BosConfig, BosConfigInput } from \"../types\";\n\n/**\n * Persists config changes onto the project's authored surface: the authored\n * `bos.app.ts` descriptor when present (the serializer drops pipeline state —\n * production URLs and integrity), else the legacy `bos.config.json` as-is.\n */\nexport async function saveBosConfig(\n configDir: string,\n config: BosConfig | BosConfigInput | Record<string, unknown>,\n): Promise<void> {\n const entryPath = localConfigEntryPath(configDir);\n if (entryPath?.endsWith(\".app.ts\")) {\n writeFileSync(entryPath, serializeAppDescriptorSource(config as BosConfigInput));\n return;\n }\n\n const filePath = join(configDir, \"bos.config.json\");\n const ordered = rebuildOrderedConfig(config as Record<string, unknown>);\n const next = `${JSON.stringify(ordered, null, 2)}\\n`;\n try {\n if (readFileSync(filePath, \"utf8\") === next) return;\n } catch {\n // file does not exist yet\n }\n\n writeFileSync(filePath, next);\n}\n"],"mappings":";;;;;;;;;;;;AAYA,eAAsB,cACpB,WACA,QACe;CACf,MAAM,YAAY,qBAAqB,SAAS;CAChD,IAAI,WAAW,SAAS,SAAS,GAAG;EAClC,cAAc,WAAW,6BAA6B,MAAwB,CAAC;EAC/E;CACF;CAEA,MAAM,WAAW,KAAK,WAAW,iBAAiB;CAClD,MAAM,UAAU,qBAAqB,MAAiC;CACtE,MAAM,OAAO,GAAG,KAAK,UAAU,SAAS,MAAM,CAAC,EAAE;CACjD,IAAI;EACF,IAAI,aAAa,UAAU,MAAM,MAAM,MAAM;CAC/C,QAAQ,CAER;CAEA,cAAc,UAAU,IAAI;AAC9B"}