@glimmer/util
Version:
Common utilities used in Glimmer
51 lines (42 loc) • 3.84 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isPresent = isPresent;
exports.ifPresent = ifPresent;
exports.toPresentOption = toPresentOption;
exports.assertPresent = assertPresent;
exports.mapPresent = mapPresent;
function isPresent(list) {
return list.length > 0;
}
function ifPresent(list, ifPresent, otherwise) {
if (isPresent(list)) {
return ifPresent(list);
} else {
return otherwise();
}
}
function toPresentOption(list) {
if (isPresent(list)) {
return list;
} else {
return null;
}
}
function assertPresent(list, message = `unexpected empty list`) {
if (!isPresent(list)) {
throw new Error(message);
}
}
function mapPresent(list, callback) {
if (list === null) {
return null;
}
let out = [];
for (let item of list) {
out.push(callback(item));
}
return out;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3V0aWwvbGliL3ByZXNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFTSxTQUFBLFNBQUEsQ0FBQSxJQUFBLEVBQXlDO0FBQzdDLFNBQU8sSUFBSSxDQUFKLE1BQUEsR0FBUCxDQUFBO0FBQ0Q7O0FBRUssU0FBQSxTQUFBLENBQUEsSUFBQSxFQUFBLFNBQUEsRUFBQSxTQUFBLEVBR2M7QUFFbEIsTUFBSSxTQUFTLENBQWIsSUFBYSxDQUFiLEVBQXFCO0FBQ25CLFdBQU8sU0FBUyxDQUFoQixJQUFnQixDQUFoQjtBQURGLEdBQUEsTUFFTztBQUNMLFdBQU8sU0FBUCxFQUFBO0FBQ0Q7QUFDRjs7QUFFSyxTQUFBLGVBQUEsQ0FBQSxJQUFBLEVBQXNDO0FBQzFDLE1BQUksU0FBUyxDQUFiLElBQWEsQ0FBYixFQUFxQjtBQUNuQixXQUFBLElBQUE7QUFERixHQUFBLE1BRU87QUFDTCxXQUFBLElBQUE7QUFDRDtBQUNGOztBQUVLLFNBQUEsYUFBQSxDQUFBLElBQUEsRUFFSixPQUFPLEdBRkgsdUJBQUEsRUFFNkI7QUFFakMsTUFBSSxDQUFDLFNBQVMsQ0FBZCxJQUFjLENBQWQsRUFBc0I7QUFDcEIsVUFBTSxJQUFBLEtBQUEsQ0FBTixPQUFNLENBQU47QUFDRDtBQUNGOztBQU9LLFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBQSxRQUFBLEVBRXFCO0FBRXpCLE1BQUksSUFBSSxLQUFSLElBQUEsRUFBbUI7QUFDakIsV0FBQSxJQUFBO0FBQ0Q7O0FBQ0QsTUFBSSxHQUFHLEdBQVAsRUFBQTs7QUFFQSxPQUFLLElBQUwsSUFBQSxJQUFBLElBQUEsRUFBdUI7QUFDckIsSUFBQSxHQUFHLENBQUgsSUFBQSxDQUFTLFFBQVEsQ0FBakIsSUFBaUIsQ0FBakI7QUFDRDs7QUFFRCxTQUFBLEdBQUE7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbiwgUHJlc2VudEFycmF5IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnQ8VD4obGlzdDogcmVhZG9ubHkgVFtdKTogbGlzdCBpcyBQcmVzZW50QXJyYXk8VD4ge1xuICByZXR1cm4gbGlzdC5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaWZQcmVzZW50PFQsIFUsIFY+KFxuICBsaXN0OiBUW10sXG4gIGlmUHJlc2VudDogKGlucHV0OiBQcmVzZW50QXJyYXk8VD4pID0+IFUsXG4gIG90aGVyd2lzZTogKCkgPT4gVlxuKTogVSB8IFYge1xuICBpZiAoaXNQcmVzZW50KGxpc3QpKSB7XG4gICAgcmV0dXJuIGlmUHJlc2VudChsaXN0KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gb3RoZXJ3aXNlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvUHJlc2VudE9wdGlvbjxUPihsaXN0OiBUW10pOiBPcHRpb248UHJlc2VudEFycmF5PFQ+PiB7XG4gIGlmIChpc1ByZXNlbnQobGlzdCkpIHtcbiAgICByZXR1cm4gbGlzdDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0UHJlc2VudDxUPihcbiAgbGlzdDogVFtdLFxuICBtZXNzYWdlID0gYHVuZXhwZWN0ZWQgZW1wdHkgbGlzdGBcbik6IGFzc2VydHMgbGlzdCBpcyBQcmVzZW50QXJyYXk8VD4ge1xuICBpZiAoIWlzUHJlc2VudChsaXN0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwUHJlc2VudDxULCBVPihsaXN0OiBQcmVzZW50QXJyYXk8VD4sIGNhbGxiYWNrOiAoaW5wdXQ6IFQpID0+IFUpOiBQcmVzZW50QXJyYXk8VT47XG5leHBvcnQgZnVuY3Rpb24gbWFwUHJlc2VudDxULCBVPihcbiAgbGlzdDogUHJlc2VudEFycmF5PFQ+IHwgbnVsbCxcbiAgY2FsbGJhY2s6IChpbnB1dDogVCkgPT4gVVxuKTogUHJlc2VudEFycmF5PFU+IHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBtYXBQcmVzZW50PFQsIFU+KFxuICBsaXN0OiBQcmVzZW50QXJyYXk8VD4gfCBudWxsLFxuICBjYWxsYmFjazogKGlucHV0OiBUKSA9PiBVXG4pOiBQcmVzZW50QXJyYXk8VT4gfCBudWxsIHtcbiAgaWYgKGxpc3QgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBsZXQgb3V0OiBVW10gPSBbXTtcblxuICBmb3IgKGxldCBpdGVtIG9mIGxpc3QpIHtcbiAgICBvdXQucHVzaChjYWxsYmFjayhpdGVtKSk7XG4gIH1cblxuICByZXR1cm4gb3V0IGFzIFByZXNlbnRBcnJheTxVPjtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
;