UNPKG

monorepo-shared-assets

Version:

Shared assets used by various packages from nodemonorepo

50 lines 1.95 kB
"use strict"; 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