zephyr-xpack-internal
Version:
Xpack internals for Zephyr
83 lines (82 loc) • 3.58 kB
JavaScript
import "node:module";
function modulePartTwo(params) {
const { name, modules, modulesObj, convertedDeps } = params;
const overrides = {};
modules?.forEach((mod)=>{
const { identifier, issuerName, reasons, moduleType } = mod;
let data = identifier?.split(' ');
if ('provide-module' === moduleType && data) {
if (issuerName) {
const issuerNameMinusExtension = issuerName.replace('.js', '');
if (modulesObj[issuerNameMinusExtension] && -1 === modulesObj[issuerNameMinusExtension].requires.indexOf(data[2])) modulesObj[issuerNameMinusExtension].requires.push(data[2]);
}
if (reasons) reasons.forEach(({ module })=>{
if (module) {
const moduleMinusExtension = module.replace('.js', '');
if (modulesObj[moduleMinusExtension] && data && -1 === modulesObj[moduleMinusExtension].requires.indexOf(data[2])) modulesObj[moduleMinusExtension].requires.push(data[2]);
}
});
let name;
let version;
if (data[3].startsWith('@')) {
const splitInfo = data[3].split('@');
splitInfo[0] = '@';
name = splitInfo[0] + splitInfo[1];
version = splitInfo[2];
} else if (data[3].includes('@')) [name, version] = data[3].split('@');
else [
convertedDeps.dependencies,
convertedDeps.devDependencies,
convertedDeps.optionalDependencies
].forEach((deps)=>{
if (!deps) return;
const dep = deps.find(({ name })=>data && name === data[2]);
if (!dep) return;
version = dep.version;
});
if (name && version) overrides[name] = {
id: name,
name,
version,
location: name,
applicationID: name
};
}
if ('consume-shared-module' !== moduleType) return;
data = identifier?.split('|');
if (issuerName && data) {
const issuerNameMinusExtension = issuerName.replace('.js', '');
if (modulesObj[issuerNameMinusExtension] && -1 === modulesObj[issuerNameMinusExtension].requires.indexOf(data[2])) modulesObj[issuerNameMinusExtension].requires.push(data[2]);
}
if (reasons) reasons.forEach(({ module })=>{
if (module) {
const moduleMinusExtension = module.replace('.js', '');
if (modulesObj[moduleMinusExtension] && data && -1 === modulesObj[moduleMinusExtension].requires.indexOf(data[2])) modulesObj[moduleMinusExtension].requires.push(data[2]);
}
});
let version = '';
if (data && data[3] && data[3]?.startsWith('=')) version = data[3].replace('=', '');
else [
convertedDeps.dependencies,
convertedDeps.devDependencies,
convertedDeps.optionalDependencies
].forEach((deps)=>{
if (!deps) return;
const dep = deps.find(({ name })=>data && name === data[2]);
if (!dep) return;
version = dep.version;
});
if (data && name) overrides[data[2]] = {
id: data[2],
name: data[2],
version,
location: data[2],
applicationID: name
};
});
return {
overrides
};
}
export { modulePartTwo };
//# sourceMappingURL=module-part-two.mjs.map