mana-common
Version:
Common utils for mana
50 lines (39 loc) • 1.16 kB
JavaScript
;
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 = {}));