every-plugin
Version:
1 lines • 5.44 kB
Source Map (JSON)
{"version":3,"file":"mf-config.mjs","names":[],"sources":["../../src/runtime/mf-config.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport pkg from \"../../package.json\";\n\nconst require = createRequire(import.meta.url);\ndeclare const __EVERY_PLUGIN_VERSION__: string | undefined;\n\nfunction readPackageVersion(): string {\n try {\n return (require(\"../../package.json\") as { version: string }).version;\n } catch {\n return \"0.0.0\";\n }\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackRange: string): string {\n try {\n let currentDir = dirname(require.resolve(packageName));\n for (let i = 0; i < 5; i += 1) {\n const packageJsonPath = join(currentDir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n return (JSON.parse(readFileSync(packageJsonPath, \"utf-8\")) as { version: string }).version;\n }\n currentDir = dirname(currentDir);\n }\n\n throw new Error(`Could not resolve installed version for ${packageName}`);\n } catch {\n const match = fallbackRange.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : fallbackRange.replace(/^[\\^~>=<\\s]+/, \"\");\n }\n}\n\nexport const PLUGIN_VERSION =\n typeof __EVERY_PLUGIN_VERSION__ === \"string\" ? __EVERY_PLUGIN_VERSION__ : readPackageVersion();\n\nexport interface SharedConfig {\n singleton: boolean;\n requiredVersion: string | false;\n strictVersion: boolean;\n eager: boolean;\n}\n\nexport const SHARE_CONFIG: SharedConfig = {\n singleton: true,\n requiredVersion: false,\n strictVersion: false,\n eager: false,\n};\n\nexport const MF_CORE_SHARED_DEPS = {\n \"every-plugin\": {\n version: PLUGIN_VERSION,\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n effect: {\n version: getInstalledPackageVersion(\"effect\", pkg.peerDependencies.effect),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n zod: {\n version: getInstalledPackageVersion(\"zod\", pkg.peerDependencies.zod),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/contract\": {\n version: getInstalledPackageVersion(\"@orpc/contract\", pkg.peerDependencies[\"@orpc/contract\"]),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/client\": {\n version: getInstalledPackageVersion(\"@orpc/client\", pkg.peerDependencies[\"@orpc/client\"]),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n \"@orpc/server\": {\n version: getInstalledPackageVersion(\"@orpc/server\", pkg.peerDependencies[\"@orpc/server\"]),\n shareScope: \"default\",\n shareConfig: SHARE_CONFIG,\n },\n} as const;\n\nexport type CoreSharedDepName = keyof typeof MF_CORE_SHARED_DEPS;\n\nexport interface AppSharedDepConfig {\n version: string;\n requiredVersion?: string | false;\n singleton?: boolean;\n strictVersion?: boolean;\n eager?: boolean;\n shareScope?: string;\n}\n\nexport type AppSharedDeps = Record<string, AppSharedDepConfig>;\n\nexport function buildMergedSharedDeps(\n appShared?: AppSharedDeps,\n): Record<string, { version: string; shareScope: string; shareConfig: SharedConfig }> {\n const merged: Record<string, { version: string; shareScope: string; shareConfig: SharedConfig }> =\n {};\n\n for (const [name, config] of Object.entries(MF_CORE_SHARED_DEPS)) {\n merged[name] = {\n version: config.version,\n shareScope: config.shareScope,\n shareConfig: config.shareConfig,\n };\n }\n\n if (appShared) {\n for (const [name, config] of Object.entries(appShared)) {\n merged[name] = {\n version: config.version,\n shareScope: config.shareScope ?? \"default\",\n shareConfig: {\n singleton: config.singleton ?? false,\n requiredVersion: config.requiredVersion ?? false,\n strictVersion: config.strictVersion ?? false,\n eager: config.eager ?? false,\n },\n };\n }\n }\n\n return merged;\n}\n"],"mappings":";;;;;;AAKA,MAAM,UAAU,cAAc,OAAO,KAAK,GAAG;AAW7C,SAAS,2BAA2B,aAAqB,eAA+B;CACtF,IAAI;EACF,IAAI,aAAa,QAAQ,QAAQ,QAAQ,WAAW,CAAC;EACrD,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;GAC7B,MAAM,kBAAkB,KAAK,YAAY,cAAc;GACvD,IAAI,WAAW,eAAe,GAC5B,OAAQ,KAAK,MAAM,aAAa,iBAAiB,OAAO,CAAC,CAAC,CAAyB;GAErF,aAAa,QAAQ,UAAU;EACjC;EAEA,MAAM,IAAI,MAAM,2CAA2C,aAAa;CAC1E,QAAQ;EACN,MAAM,QAAQ,cAAc,MAAM,mCAAmC;EACrE,OAAO,QAAQ,MAAM,KAAK,cAAc,QAAQ,gBAAgB,EAAE;CACpE;AACF;AAEA,MAAa;AAUb,MAAa,eAA6B;CACxC,WAAW;CACX,iBAAiB;CACjB,eAAe;CACf,OAAO;AACT;AAEA,MAAa,sBAAsB;CACjC,gBAAgB;EACd,SAAS;EACT,YAAY;EACZ,aAAa;CACf;CACA,QAAQ;EACN,SAAS,2BAA2B,2BAA+B,MAAM;EACzE,YAAY;EACZ,aAAa;CACf;CACA,KAAK;EACH,SAAS,2BAA2B,wBAA4B,GAAG;EACnE,YAAY;EACZ,aAAa;CACf;CACA,kBAAkB;EAChB,SAAS,2BAA2B,mCAAuC,iBAAiB;EAC5F,YAAY;EACZ,aAAa;CACf;CACA,gBAAgB;EACd,SAAS,2BAA2B,iCAAqC,eAAe;EACxF,YAAY;EACZ,aAAa;CACf;CACA,gBAAgB;EACd,SAAS,2BAA2B,iCAAqC,eAAe;EACxF,YAAY;EACZ,aAAa;CACf;AACF;AAeA,SAAgB,sBACd,WACoF;CACpF,MAAM,SACJ,CAAC;CAEH,KAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,mBAAmB,GAC7D,OAAO,QAAQ;EACb,SAAS,OAAO;EAChB,YAAY,OAAO;EACnB,aAAa,OAAO;CACtB;CAGF,IAAI,WACF,KAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,SAAS,GACnD,OAAO,QAAQ;EACb,SAAS,OAAO;EAChB,YAAY,OAAO,cAAc;EACjC,aAAa;GACX,WAAW,OAAO,aAAa;GAC/B,iBAAiB,OAAO,mBAAmB;GAC3C,eAAe,OAAO,iBAAiB;GACvC,OAAO,OAAO,SAAS;EACzB;CACF;CAIJ,OAAO;AACT"}