every-plugin
Version:
1 lines • 4.96 kB
Source Map (JSON)
{"version":3,"file":"shared-deps.cjs","names":["__dirname","require"],"sources":["../../src/build/shared-deps.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst require = createRequire(import.meta.url);\n\nlet pkg: typeof import(\"../../package.json\");\n\ntry {\n pkg = JSON.parse(readFileSync(join(__dirname, \"../../package.json\"), \"utf-8\"));\n} catch {\n pkg = require(\"every-plugin/package.json\");\n}\n\nexport interface SharedDependencyConfig {\n version: string;\n requiredVersion: string | false;\n singleton: boolean;\n strictVersion: boolean;\n eager: boolean;\n shareScope: string;\n}\n\nexport type SharedDependencies = Record<string, SharedDependencyConfig>;\n\nconst DEFAULT_SHARE_CONFIG: Omit<SharedDependencyConfig, \"version\"> = {\n requiredVersion: false,\n singleton: true,\n strictVersion: false,\n eager: false,\n shareScope: \"default\",\n};\n\nfunction extractExactVersion(input: string): string {\n const match = input.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : input.replace(/^[\\^~>=<\\s]+/, \"\");\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackVersion: 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 return extractExactVersion(fallbackVersion);\n }\n}\n\nexport const pluginSharedDependencies = {\n \"every-plugin\": { version: pkg.version, ...DEFAULT_SHARE_CONFIG },\n effect: {\n version: getInstalledPackageVersion(\"effect\", pkg.peerDependencies.effect),\n ...DEFAULT_SHARE_CONFIG,\n },\n zod: {\n version: getInstalledPackageVersion(\"zod\", pkg.peerDependencies.zod),\n ...DEFAULT_SHARE_CONFIG,\n },\n \"@orpc/contract\": {\n version: getInstalledPackageVersion(\"@orpc/contract\", pkg.peerDependencies[\"@orpc/contract\"]),\n ...DEFAULT_SHARE_CONFIG,\n },\n \"@orpc/client\": {\n version: getInstalledPackageVersion(\"@orpc/client\", pkg.peerDependencies[\"@orpc/client\"]),\n ...DEFAULT_SHARE_CONFIG,\n },\n \"@orpc/server\": {\n version: getInstalledPackageVersion(\"@orpc/server\", pkg.peerDependencies[\"@orpc/server\"]),\n ...DEFAULT_SHARE_CONFIG,\n },\n} satisfies SharedDependencies;\n\nexport type PluginSharedDependencyName = keyof typeof pluginSharedDependencies;\n\nexport function getPluginSharedDependencies(): SharedDependencies {\n return pluginSharedDependencies;\n}\n\nexport function getPluginSharedDependenciesVersionRange(): Record<string, string> {\n return Object.fromEntries(\n Object.entries(getPluginSharedDependencies()).map(([name, config]) => [\n name,\n getMajorMinorVersion(config.version),\n ]),\n );\n}\n\nexport function getMajorMinorVersion(version: string): string {\n const clean = version.replace(/^[\\^~>=<]+/, \"\");\n const match = clean.match(/^(\\d+)\\.(\\d+)/);\n if (!match) return \"^0.0.0\";\n return `^${match[1]}.${match[2]}.0`;\n}\n"],"mappings":";;;;;;;AAKA,MAAMA,8GAAiD,CAAC;AACxD,MAAMC,wFAAuC;AAE7C,IAAI;AAEJ,IAAI;CACF,MAAM,KAAK,oDAAwBD,aAAW,oBAAoB,GAAG,OAAO,CAAC;AAC/E,QAAQ;CACN,MAAMC,UAAQ,2BAA2B;AAC3C;AAaA,MAAM,uBAAgE;CACpE,iBAAiB;CACjB,WAAW;CACX,eAAe;CACf,OAAO;CACP,YAAY;AACd;AAEA,SAAS,oBAAoB,OAAuB;CAClD,MAAM,QAAQ,MAAM,MAAM,mCAAmC;CAC7D,OAAO,QAAQ,MAAM,KAAK,MAAM,QAAQ,gBAAgB,EAAE;AAC5D;AAEA,SAAS,2BAA2B,aAAqB,iBAAiC;CACxF,IAAI;EACF,IAAI,oCAAqBA,UAAQ,QAAQ,WAAW,CAAC;EACrD,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;GAC7B,MAAM,sCAAuB,YAAY,cAAc;GACvD,4BAAe,eAAe,GAC5B,OAAQ,KAAK,gCAAmB,iBAAiB,OAAO,CAAC,CAAC,CAAyB;GAErF,oCAAqB,UAAU;EACjC;EAEA,MAAM,IAAI,MAAM,2CAA2C,aAAa;CAC1E,QAAQ;EACN,OAAO,oBAAoB,eAAe;CAC5C;AACF;AAEA,MAAa,2BAA2B;CACtC,gBAAgB;EAAE,SAAS,IAAI;EAAS,GAAG;CAAqB;CAChE,QAAQ;EACN,SAAS,2BAA2B,UAAU,IAAI,iBAAiB,MAAM;EACzE,GAAG;CACL;CACA,KAAK;EACH,SAAS,2BAA2B,OAAO,IAAI,iBAAiB,GAAG;EACnE,GAAG;CACL;CACA,kBAAkB;EAChB,SAAS,2BAA2B,kBAAkB,IAAI,iBAAiB,iBAAiB;EAC5F,GAAG;CACL;CACA,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,IAAI,iBAAiB,eAAe;EACxF,GAAG;CACL;CACA,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,IAAI,iBAAiB,eAAe;EACxF,GAAG;CACL;AACF;AAIA,SAAgB,8BAAkD;CAChE,OAAO;AACT;AAEA,SAAgB,0CAAkE;CAChF,OAAO,OAAO,YACZ,OAAO,QAAQ,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,CACpE,MACA,qBAAqB,OAAO,OAAO,CACrC,CAAC,CACH;AACF;AAEA,SAAgB,qBAAqB,SAAyB;CAE5D,MAAM,QADQ,QAAQ,QAAQ,cAAc,EAC1B,CAAC,CAAC,MAAM,eAAe;CACzC,IAAI,CAAC,OAAO,OAAO;CACnB,OAAO,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG;AAClC"}