zephyr-xpack-internal
Version:
Xpack internals for Zephyr
104 lines (103 loc) • 4.59 kB
JavaScript
;
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, getters, values)=>{
var define = (defs, kind)=>{
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
[kind]: defs[key]
});
};
define(getters, "get");
define(values, "value");
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
buildVersionedDependencyMap: ()=>buildVersionedDependencyMap,
findPackageJson: ()=>findPackageJson,
resolveInstalledPackageVersion: ()=>resolveInstalledPackageVersion
});
const external_node_fs_namespaceObject = require("node:fs");
const external_node_path_namespaceObject = require("node:path");
const findPackageJson = (filePath)=>{
if (!filePath || 0 === filePath.length) return;
if ((0, external_node_fs_namespaceObject.existsSync)((0, external_node_path_namespaceObject.join)(filePath.join(external_node_path_namespaceObject.sep), 'package.json'))) try {
const file = (0, external_node_fs_namespaceObject.readFileSync)((0, external_node_path_namespaceObject.join)(filePath.join(external_node_path_namespaceObject.sep), 'package.json'), 'utf-8');
return JSON.parse(file);
} catch (e) {
console.error(e);
}
filePath.pop();
return findPackageJson(filePath);
};
function buildVersionedDependencyMap(packageJson, dependencyGroup, resolveVersion) {
const dependencyNames = Object.keys(packageJson[dependencyGroup] ?? {});
return dependencyNames.reduce((dependencies, name)=>{
const version = resolveVersion(name);
if (!version) return dependencies;
const versionWithoutPatch = version.split(/[+-]/, 1)[0].split('.').slice(0, 2).join('.');
dependencies[`${name}-${versionWithoutPatch}`] = name;
return dependencies;
}, {});
}
function resolveInstalledPackageVersion(packageName, projectRequire) {
const packageJsonSpecifier = `${packageName}/package.json`;
try {
const packageJsonPath = projectRequire.resolve(packageJsonSpecifier);
return readPackageVersion(packageJsonPath);
} catch {
for (const lookupPath of projectRequire.resolve.paths(packageName) ?? []){
const version = readPackageVersion((0, external_node_path_namespaceObject.join)(lookupPath, packageJsonSpecifier));
if (version) return version;
}
}
try {
let currentDirectory = (0, external_node_path_namespaceObject.dirname)(projectRequire.resolve(packageName));
while(true){
const packageJsonPath = (0, external_node_path_namespaceObject.join)(currentDirectory, 'package.json');
const version = readPackageVersion(packageJsonPath);
if (version) return version;
const parentDirectory = (0, external_node_path_namespaceObject.dirname)(currentDirectory);
if (parentDirectory === currentDirectory) return;
currentDirectory = parentDirectory;
}
} catch {
return;
}
}
function readPackageVersion(packageJsonPath) {
if (!(0, external_node_fs_namespaceObject.existsSync)(packageJsonPath)) return;
try {
const packageJson = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(packageJsonPath, 'utf8'));
return 'string' == typeof packageJson.version ? packageJson.version : void 0;
} catch {
return;
}
}
exports.buildVersionedDependencyMap = __webpack_exports__.buildVersionedDependencyMap;
exports.findPackageJson = __webpack_exports__.findPackageJson;
exports.resolveInstalledPackageVersion = __webpack_exports__.resolveInstalledPackageVersion;
for(var __rspack_i in __webpack_exports__)if (-1 === [
"buildVersionedDependencyMap",
"findPackageJson",
"resolveInstalledPackageVersion"
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
Object.defineProperty(exports, '__esModule', {
value: true
});
//# sourceMappingURL=find-package-json.js.map