UNPKG

mana-common

Version:

Common utils for mana

50 lines (39 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Priority = void 0; var Priority; exports.Priority = Priority; (function (Priority) { Priority[Priority["PRIOR"] = 1000] = "PRIOR"; Priority[Priority["DEFAULT"] = 100] = "DEFAULT"; Priority[Priority["IDLE"] = -1] = "IDLE"; })(Priority || (exports.Priority = Priority = {})); (function (Priority) { function toPriorityObject(rawValue, getPriority) { if (rawValue instanceof Array) { return rawValue.map(v => toPriorityObject(v, getPriority)); } const value = rawValue; const priority = getPriority(value); return { priority, value }; } Priority.toPriorityObject = toPriorityObject; function sort(values, getPriority) { const prioritizeable = toPriorityObject(values, getPriority); return prioritizeable.filter(isValid).sort(compare); } Priority.sort = sort; function isValid(p) { return p.priority > 0; } Priority.isValid = isValid; function compare(p, p2) { return p2.priority - p.priority; } Priority.compare = compare; })(Priority || (exports.Priority = Priority = {}));