UNPKG

everything-dev

Version:

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

1 lines • 2.5 kB
{"version":3,"file":"registry-use.cjs","names":[],"sources":["../src/registry-use.ts"],"sourcesContent":["import type { BosConfigInput } from \"./types\";\n\ntype ComposableConfig = Record<string, unknown> & {\n app?: Record<string, unknown>;\n plugins?: Record<string, unknown>;\n};\n\nexport function listComposableSections(config: BosConfigInput): string[] {\n const source = config as ComposableConfig;\n const sections: string[] = [];\n\n for (const key of [\"host\", \"ui\", \"api\", \"auth\"]) {\n if (source.app?.[key]) sections.push(`app.${key}`);\n }\n for (const key of Object.keys(source.plugins ?? {})) {\n sections.push(`plugins.${key}`);\n }\n\n return sections;\n}\n\nexport function applyRegistrySections(\n local: BosConfigInput,\n remote: BosConfigInput,\n sections: string[],\n): { config: BosConfigInput; applied: string[] } {\n const available = listComposableSections(remote);\n const unknown = sections.filter((section) => !available.includes(section));\n if (unknown.length > 0) {\n throw new Error(\n `Unknown section(s): ${unknown.join(\", \")}. Available: ${available.join(\", \")}`,\n );\n }\n\n const merged = structuredClone(local) as ComposableConfig;\n\n for (const section of sections) {\n if (section.startsWith(\"app.\")) {\n const key = section.slice(\"app.\".length);\n merged.app = { ...merged.app, [key]: (remote as ComposableConfig).app?.[key] };\n } else {\n const key = section.slice(\"plugins.\".length);\n merged.plugins = {\n ...merged.plugins,\n [key]: (remote as ComposableConfig).plugins?.[key],\n };\n }\n }\n\n return { config: merged as BosConfigInput, applied: sections };\n}\n"],"mappings":";AAOA,SAAgB,uBAAuB,QAAkC;CACvE,MAAM,SAAS;CACf,MAAM,WAAqB,CAAC;CAE5B,KAAK,MAAM,OAAO;EAAC;EAAQ;EAAM;EAAO;CAAM,GAC5C,IAAI,OAAO,MAAM,MAAM,SAAS,KAAK,OAAO,KAAK;CAEnD,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,WAAW,CAAC,CAAC,GAChD,SAAS,KAAK,WAAW,KAAK;CAGhC,OAAO;AACT;AAEA,SAAgB,sBACd,OACA,QACA,UAC+C;CAC/C,MAAM,YAAY,uBAAuB,MAAM;CAC/C,MAAM,UAAU,SAAS,QAAQ,YAAY,CAAC,UAAU,SAAS,OAAO,CAAC;CACzE,IAAI,QAAQ,SAAS,GACnB,MAAM,IAAI,MACR,uBAAuB,QAAQ,KAAK,IAAI,EAAE,eAAe,UAAU,KAAK,IAAI,GAC9E;CAGF,MAAM,SAAS,gBAAgB,KAAK;CAEpC,KAAK,MAAM,WAAW,UACpB,IAAI,QAAQ,WAAW,MAAM,GAAG;EAC9B,MAAM,MAAM,QAAQ,MAAM,CAAa;EACvC,OAAO,MAAM;GAAE,GAAG,OAAO;IAAM,MAAO,OAA4B,MAAM;EAAK;CAC/E,OAAO;EACL,MAAM,MAAM,QAAQ,MAAM,CAAiB;EAC3C,OAAO,UAAU;GACf,GAAG,OAAO;IACT,MAAO,OAA4B,UAAU;EAChD;CACF;CAGF,OAAO;EAAE,QAAQ;EAA0B,SAAS;CAAS;AAC/D"}