every-plugin
Version:
83 lines (81 loc) • 2.7 kB
JavaScript
import { peerDependencies } from "../package.mjs";
import { createRequire } from "node:module";
import { existsSync, readFileSync } from "node:fs";
import { dirname, join } from "node:path";
//#region src/runtime/mf-config.ts
const require = createRequire(import.meta.url);
function getInstalledPackageVersion(packageName, fallbackRange) {
try {
let currentDir = dirname(require.resolve(packageName));
for (let i = 0; i < 5; i += 1) {
const packageJsonPath = join(currentDir, "package.json");
if (existsSync(packageJsonPath)) return JSON.parse(readFileSync(packageJsonPath, "utf-8")).version;
currentDir = dirname(currentDir);
}
throw new Error(`Could not resolve installed version for ${packageName}`);
} catch {
const match = fallbackRange.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
return match ? match[0] : fallbackRange.replace(/^[\^~>=<\s]+/, "");
}
}
const PLUGIN_VERSION = "2.10.0";
const SHARE_CONFIG = {
singleton: true,
requiredVersion: false,
strictVersion: false,
eager: false
};
const MF_CORE_SHARED_DEPS = {
"every-plugin": {
version: PLUGIN_VERSION,
shareScope: "default",
shareConfig: SHARE_CONFIG
},
effect: {
version: getInstalledPackageVersion("effect", peerDependencies.effect),
shareScope: "default",
shareConfig: SHARE_CONFIG
},
zod: {
version: getInstalledPackageVersion("zod", peerDependencies.zod),
shareScope: "default",
shareConfig: SHARE_CONFIG
},
"@orpc/contract": {
version: getInstalledPackageVersion("@orpc/contract", peerDependencies["@orpc/contract"]),
shareScope: "default",
shareConfig: SHARE_CONFIG
},
"@orpc/client": {
version: getInstalledPackageVersion("@orpc/client", peerDependencies["@orpc/client"]),
shareScope: "default",
shareConfig: SHARE_CONFIG
},
"@orpc/server": {
version: getInstalledPackageVersion("@orpc/server", peerDependencies["@orpc/server"]),
shareScope: "default",
shareConfig: SHARE_CONFIG
}
};
function buildMergedSharedDeps(appShared) {
const merged = {};
for (const [name, config] of Object.entries(MF_CORE_SHARED_DEPS)) merged[name] = {
version: config.version,
shareScope: config.shareScope,
shareConfig: config.shareConfig
};
if (appShared) for (const [name, config] of Object.entries(appShared)) merged[name] = {
version: config.version,
shareScope: config.shareScope ?? "default",
shareConfig: {
singleton: config.singleton ?? false,
requiredVersion: config.requiredVersion ?? false,
strictVersion: config.strictVersion ?? false,
eager: config.eager ?? false
}
};
return merged;
}
//#endregion
export { MF_CORE_SHARED_DEPS, PLUGIN_VERSION, SHARE_CONFIG, buildMergedSharedDeps };
//# sourceMappingURL=mf-config.mjs.map