UNPKG

monorepo-shared-assets

Version:

Shared assets used by various packages from nodemonorepo

44 lines 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const immutable_1 = tslib_1.__importDefault(require("immutable")); const array_1 = require("@tsfun/array"); function partition(iterable, classifiers) { return partition.fromClassifierList(new Set(iterable), new Set(classifiers)); } exports.partition = partition; (function (partition) { function fromClassifierList(values, classifiers) { return fromClassifierList.iterable(values, classifiers); } partition.fromClassifierList = fromClassifierList; (function (fromClassifierList) { function iterable(values, classifiers) { const result = array(Array.from(values), Array.from(classifiers)); const classified = immutable_1.default .Map(result.classified) .map(x => new Set(x)) .toObject(); const untouched = new Set(result.untouched); return { classified, untouched }; } fromClassifierList.iterable = iterable; function array(list, classifiers) { if (!classifiers.length) return { classified: {}, untouched: list }; const [[target, func], ...nextClassifiers] = classifiers; const [value, nextList] = array_1.partition(Array.from(list), func); const nextPartition = array(nextList, nextClassifiers); const classified = Object.assign({ [target]: value }, nextPartition.classified); const untouched = nextPartition.untouched; return { classified, untouched }; } fromClassifierList.array = array; })(fromClassifierList = partition.fromClassifierList || (partition.fromClassifierList = {})); function fromClassifierDict(list, classifiers) { return partition(list, Object.entries(classifiers)); } partition.fromClassifierDict = fromClassifierDict; })(partition = exports.partition || (exports.partition = {})); exports.default = partition; //# sourceMappingURL=index.js.map