zephyr-xpack-internal
Version:
Xpack internals for Zephyr
37 lines (36 loc) • 1.24 kB
JavaScript
import "node:module";
function processFunctionRemotes(params) {
const { functionRemotes, consumes } = params;
if (!Array.isArray(functionRemotes)) return {
consumes
};
const dynamicConsumes = Object.values(functionRemotes.reduce((acc, [file, applicationID, name])=>{
const cleanName = name.replace('./', '');
const objectId = `${applicationID}/${cleanName}`;
const cleanFile = file.replace('./', '');
const foundExistingConsume = consumes.find((consumeObj)=>consumeObj.applicationID === applicationID && consumeObj.name === cleanName);
if (foundExistingConsume) {
foundExistingConsume.usedIn.add(cleanFile);
return acc;
}
if (acc[objectId]) {
acc[objectId].usedIn.add(cleanFile);
return acc;
}
acc[objectId] = {
applicationID,
name: cleanName,
consumingApplicationID: name,
usedIn: new Set([
cleanFile
])
};
return acc;
}, {}));
consumes.push(...dynamicConsumes);
return {
consumes
};
}
export { processFunctionRemotes };
//# sourceMappingURL=process-function-remotes.mjs.map