monorepo-shared-assets
Version:
Shared assets used by various packages from nodemonorepo
50 lines • 1.95 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const in_iter_1 = tslib_1.__importDefault(require("../.utils/in-iter"));
const identify_1 = tslib_1.__importDefault(require("./utils/identify"));
var classify;
(function (classify) {
function singleDistribute(values, classifier, identifier, duplicateChecker) {
const db = new Map();
for (const item of values) {
const id = classifier(item);
const foundID = identify_1.default(id, db, identifier);
if (foundID) {
const set = db.get(foundID);
in_iter_1.default(item, set, duplicateChecker) || set.add(item);
}
else {
db.set(id, new Set([item]));
}
}
return db;
}
classify.singleDistribute = singleDistribute;
function multiDistribute(values, classifier, identifier, duplicateChecker) {
const classified = new Map();
const unclassified = new Set();
for (const item of values) {
const classes = new Set(classifier(item));
if (classes.size) {
for (const id of classes) {
const foundID = identify_1.default(id, classified, identifier);
if (foundID) {
const set = classified.get(foundID);
in_iter_1.default(item, set, duplicateChecker) || set.add(item);
}
else {
classified.set(id, new Set([item]));
}
}
}
else {
unclassified.add(item);
}
}
return { classified, unclassified };
}
classify.multiDistribute = multiDistribute;
})(classify = exports.classify || (exports.classify = {}));
exports.default = classify;
//# sourceMappingURL=index.js.map
;