every-plugin
Version:
83 lines (81 loc) • 3.11 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
let node_fs = require("node:fs");
let node_module = require("node:module");
let node_path = require("node:path");
let node_url = require("node:url");
//#region src/build/shared-deps.ts
const __dirname$1 = (0, node_path.dirname)((0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href));
const require$1 = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
let pkg;
try {
pkg = JSON.parse((0, node_fs.readFileSync)((0, node_path.join)(__dirname$1, "../../package.json"), "utf-8"));
} catch {
pkg = require$1("every-plugin/package.json");
}
const DEFAULT_SHARE_CONFIG = {
requiredVersion: false,
singleton: true,
strictVersion: false,
eager: false,
shareScope: "default"
};
function extractExactVersion(input) {
const match = input.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
return match ? match[0] : input.replace(/^[\^~>=<\s]+/, "");
}
function getInstalledPackageVersion(packageName, fallbackVersion) {
try {
let currentDir = (0, node_path.dirname)(require$1.resolve(packageName));
for (let i = 0; i < 5; i += 1) {
const packageJsonPath = (0, node_path.join)(currentDir, "package.json");
if ((0, node_fs.existsSync)(packageJsonPath)) return JSON.parse((0, node_fs.readFileSync)(packageJsonPath, "utf-8")).version;
currentDir = (0, node_path.dirname)(currentDir);
}
throw new Error(`Could not resolve installed version for ${packageName}`);
} catch {
return extractExactVersion(fallbackVersion);
}
}
const pluginSharedDependencies = {
"every-plugin": {
version: pkg.version,
...DEFAULT_SHARE_CONFIG
},
effect: {
version: getInstalledPackageVersion("effect", pkg.peerDependencies.effect),
...DEFAULT_SHARE_CONFIG
},
zod: {
version: getInstalledPackageVersion("zod", pkg.peerDependencies.zod),
...DEFAULT_SHARE_CONFIG
},
"@orpc/contract": {
version: getInstalledPackageVersion("@orpc/contract", pkg.peerDependencies["@orpc/contract"]),
...DEFAULT_SHARE_CONFIG
},
"@orpc/client": {
version: getInstalledPackageVersion("@orpc/client", pkg.peerDependencies["@orpc/client"]),
...DEFAULT_SHARE_CONFIG
},
"@orpc/server": {
version: getInstalledPackageVersion("@orpc/server", pkg.peerDependencies["@orpc/server"]),
...DEFAULT_SHARE_CONFIG
}
};
function getPluginSharedDependencies() {
return pluginSharedDependencies;
}
function getPluginSharedDependenciesVersionRange() {
return Object.fromEntries(Object.entries(getPluginSharedDependencies()).map(([name, config]) => [name, getMajorMinorVersion(config.version)]));
}
function getMajorMinorVersion(version) {
const match = version.replace(/^[\^~>=<]+/, "").match(/^(\d+)\.(\d+)/);
if (!match) return "^0.0.0";
return `^${match[1]}.${match[2]}.0`;
}
//#endregion
exports.getMajorMinorVersion = getMajorMinorVersion;
exports.getPluginSharedDependencies = getPluginSharedDependencies;
exports.getPluginSharedDependenciesVersionRange = getPluginSharedDependenciesVersionRange;
exports.pluginSharedDependencies = pluginSharedDependencies;
//# sourceMappingURL=shared-deps.cjs.map