zephyr-agent
Version:
Zephyr plugin agent
37 lines (36 loc) • 1.47 kB
JavaScript
import "node:module";
function parseZeDependencies(ze_dependencies) {
return Object.fromEntries(Object.entries(ze_dependencies).map(([key, value])=>[
key,
parseZeDependency(key, value)
]));
}
function parseZeDependency(key, value) {
const dependency = {
version: value,
registry: 'zephyr',
app_uid: key
};
let reference = value;
const workspaceIndex = reference.indexOf('workspace:');
if (-1 !== workspaceIndex) {
const appUidPrefix = reference.slice(0, workspaceIndex).replace(/@$/, '');
if (appUidPrefix) dependency.app_uid = appUidPrefix;
const range = reference.slice(workspaceIndex + 10);
dependency.version = '' === range || '*' === range || '^' === range || '~' === range ? 'workspace:*' : range;
return dependency;
}
if (reference.includes(':')) {
const reference_parts = reference.split(':');
dependency.registry = reference_parts[0];
reference = reference_parts[1];
}
if (reference.includes('@')) {
const reference_parts = reference.split('@');
dependency.app_uid = reference_parts.slice(0, reference_parts.length - 1).join('@');
dependency.version = reference_parts[reference_parts.length - 1];
} else dependency.version = reference;
return dependency;
}
export { parseZeDependencies, parseZeDependency };
//# sourceMappingURL=ze-util-parse-ze-dependencies.mjs.map