UNPKG

@malagu/core

Version:
41 lines 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Prioritizeable = void 0; var Prioritizeable; (function (Prioritizeable) { async function toPrioritizeable(rawValue, getPriority) { if (rawValue instanceof Array) { return Promise.all(rawValue.map(v => toPrioritizeable(v, getPriority))); } const value = await rawValue; const priority = await getPriority(value); return { priority, value }; } Prioritizeable.toPrioritizeable = toPrioritizeable; function toPrioritizeableSync(rawValue, getPriority = value => value.priority) { return rawValue.map(v => ({ value: v, priority: getPriority(v) })); } Prioritizeable.toPrioritizeableSync = toPrioritizeableSync; function prioritizeAllSync(values, getPriority) { const prioritizeable = toPrioritizeableSync(values, getPriority); return prioritizeable.filter(isValid).sort(compare); } Prioritizeable.prioritizeAllSync = prioritizeAllSync; async function prioritizeAll(values, getPriority) { const prioritizeable = await toPrioritizeable(values, getPriority); return prioritizeable.filter(isValid).sort(compare); } Prioritizeable.prioritizeAll = prioritizeAll; function isValid(p) { return p.priority > 0; } Prioritizeable.isValid = isValid; function compare(p, p2) { return p2.priority - p.priority; } Prioritizeable.compare = compare; })(Prioritizeable = exports.Prioritizeable || (exports.Prioritizeable = {})); //# sourceMappingURL=prioritizeable.js.map