@yathomasi/cypress-parallel
Version:
[](https://github.com/yathomasi/cypress-parallel/actions/workflows/build.yml) [;
exports.distribute = void 0;
const utils_1 = require("./utils");
function distribute(weighedFiles, unweighedFiles, nodeCount) {
const intermediateSchedule = Array.from({ length: nodeCount }, () => {
return [];
});
weighedFiles.sort((a, b) => {
if (a.weight === b.weight) {
return (0, utils_1.compare)(a.file, b.file);
}
else {
return (0, utils_1.compare)(b.weight, a.weight);
}
});
for (const weighedFile of weighedFiles) {
const leastAssignedNode = intermediateSchedule.sort((a, b) => (0, utils_1.weightOfSchedule)(a) - (0, utils_1.weightOfSchedule)(b))[0];
leastAssignedNode.push(weighedFile);
}
const determinedSchedule = intermediateSchedule.sort((a, b) => (0, utils_1.weightOfSchedule)(a) - (0, utils_1.weightOfSchedule)(b));
for (let i = 0; i < unweighedFiles.length; i++) {
determinedSchedule[i % nodeCount].push(unweighedFiles[i]);
}
return determinedSchedule;
}
exports.distribute = distribute;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3RyaWJ1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsbUNBQW9EO0FBRXBELFNBQWdCLFVBQVUsQ0FDeEIsWUFBMkIsRUFDM0IsY0FBK0IsRUFDL0IsU0FBaUI7SUFFakIsTUFBTSxvQkFBb0IsR0FBb0IsS0FBSyxDQUFDLElBQUksQ0FDdEQsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQ3JCLEdBQUcsRUFBRTtRQUNILE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUNGLENBQUM7SUFFRixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3pCLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3pCLE9BQU8sSUFBQSxlQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7YUFBTTtZQUNMLE9BQU8sSUFBQSxlQUFPLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFO1FBQ3RDLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUNqRCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsd0JBQWdCLEVBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxDQUFDLENBQUMsQ0FDcEQsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVMLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUNyQztJQUVELE1BQU0sa0JBQWtCLEdBQW1CLG9CQUFvQixDQUFDLElBQUksQ0FDbEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHdCQUFnQixFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUEsd0JBQWdCLEVBQUMsQ0FBQyxDQUFDLENBQ3BELENBQUM7SUFFRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM5QyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzNEO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDO0FBckNELGdDQXFDQyJ9