UNPKG

3.84 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.isPresent = isPresent;
7exports.ifPresent = ifPresent;
8exports.toPresentOption = toPresentOption;
9exports.assertPresent = assertPresent;
10exports.mapPresent = mapPresent;
11
12function isPresent(list) {
13 return list.length > 0;
14}
15
16function ifPresent(list, ifPresent, otherwise) {
17 if (isPresent(list)) {
18 return ifPresent(list);
19 } else {
20 return otherwise();
21 }
22}
23
24function toPresentOption(list) {
25 if (isPresent(list)) {
26 return list;
27 } else {
28 return null;
29 }
30}
31
32function assertPresent(list, message = `unexpected empty list`) {
33 if (!isPresent(list)) {
34 throw new Error(message);
35 }
36}
37
38function mapPresent(list, callback) {
39 if (list === null) {
40 return null;
41 }
42
43 let out = [];
44
45 for (let item of list) {
46 out.push(callback(item));
47 }
48
49 return out;
50}
51//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3V0aWwvbGliL3ByZXNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFTSxTQUFBLFNBQUEsQ0FBQSxJQUFBLEVBQXlDO0FBQzdDLFNBQU8sSUFBSSxDQUFKLE1BQUEsR0FBUCxDQUFBO0FBQ0Q7O0FBRUssU0FBQSxTQUFBLENBQUEsSUFBQSxFQUFBLFNBQUEsRUFBQSxTQUFBLEVBR2M7QUFFbEIsTUFBSSxTQUFTLENBQWIsSUFBYSxDQUFiLEVBQXFCO0FBQ25CLFdBQU8sU0FBUyxDQUFoQixJQUFnQixDQUFoQjtBQURGLEdBQUEsTUFFTztBQUNMLFdBQU8sU0FBUCxFQUFBO0FBQ0Q7QUFDRjs7QUFFSyxTQUFBLGVBQUEsQ0FBQSxJQUFBLEVBQXNDO0FBQzFDLE1BQUksU0FBUyxDQUFiLElBQWEsQ0FBYixFQUFxQjtBQUNuQixXQUFBLElBQUE7QUFERixHQUFBLE1BRU87QUFDTCxXQUFBLElBQUE7QUFDRDtBQUNGOztBQUVLLFNBQUEsYUFBQSxDQUFBLElBQUEsRUFFSixPQUFPLEdBRkgsdUJBQUEsRUFFNkI7QUFFakMsTUFBSSxDQUFDLFNBQVMsQ0FBZCxJQUFjLENBQWQsRUFBc0I7QUFDcEIsVUFBTSxJQUFBLEtBQUEsQ0FBTixPQUFNLENBQU47QUFDRDtBQUNGOztBQU9LLFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBQSxRQUFBLEVBRXFCO0FBRXpCLE1BQUksSUFBSSxLQUFSLElBQUEsRUFBbUI7QUFDakIsV0FBQSxJQUFBO0FBQ0Q7O0FBQ0QsTUFBSSxHQUFHLEdBQVAsRUFBQTs7QUFFQSxPQUFLLElBQUwsSUFBQSxJQUFBLElBQUEsRUFBdUI7QUFDckIsSUFBQSxHQUFHLENBQUgsSUFBQSxDQUFTLFFBQVEsQ0FBakIsSUFBaUIsQ0FBakI7QUFDRDs7QUFFRCxTQUFBLEdBQUE7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbiwgUHJlc2VudEFycmF5IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnQ8VD4obGlzdDogcmVhZG9ubHkgVFtdKTogbGlzdCBpcyBQcmVzZW50QXJyYXk8VD4ge1xuICByZXR1cm4gbGlzdC5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaWZQcmVzZW50PFQsIFUsIFY+KFxuICBsaXN0OiBUW10sXG4gIGlmUHJlc2VudDogKGlucHV0OiBQcmVzZW50QXJyYXk8VD4pID0+IFUsXG4gIG90aGVyd2lzZTogKCkgPT4gVlxuKTogVSB8IFYge1xuICBpZiAoaXNQcmVzZW50KGxpc3QpKSB7XG4gICAgcmV0dXJuIGlmUHJlc2VudChsaXN0KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gb3RoZXJ3aXNlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvUHJlc2VudE9wdGlvbjxUPihsaXN0OiBUW10pOiBPcHRpb248UHJlc2VudEFycmF5PFQ+PiB7XG4gIGlmIChpc1ByZXNlbnQobGlzdCkpIHtcbiAgICByZXR1cm4gbGlzdDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0UHJlc2VudDxUPihcbiAgbGlzdDogVFtdLFxuICBtZXNzYWdlID0gYHVuZXhwZWN0ZWQgZW1wdHkgbGlzdGBcbik6IGFzc2VydHMgbGlzdCBpcyBQcmVzZW50QXJyYXk8VD4ge1xuICBpZiAoIWlzUHJlc2VudChsaXN0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwUHJlc2VudDxULCBVPihsaXN0OiBQcmVzZW50QXJyYXk8VD4sIGNhbGxiYWNrOiAoaW5wdXQ6IFQpID0+IFUpOiBQcmVzZW50QXJyYXk8VT47XG5leHBvcnQgZnVuY3Rpb24gbWFwUHJlc2VudDxULCBVPihcbiAgbGlzdDogUHJlc2VudEFycmF5PFQ+IHwgbnVsbCxcbiAgY2FsbGJhY2s6IChpbnB1dDogVCkgPT4gVVxuKTogUHJlc2VudEFycmF5PFU+IHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBtYXBQcmVzZW50PFQsIFU+KFxuICBsaXN0OiBQcmVzZW50QXJyYXk8VD4gfCBudWxsLFxuICBjYWxsYmFjazogKGlucHV0OiBUKSA9PiBVXG4pOiBQcmVzZW50QXJyYXk8VT4gfCBudWxsIHtcbiAgaWYgKGxpc3QgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBsZXQgb3V0OiBVW10gPSBbXTtcblxuICBmb3IgKGxldCBpdGVtIG9mIGxpc3QpIHtcbiAgICBvdXQucHVzaChjYWxsYmFjayhpdGVtKSk7XG4gIH1cblxuICByZXR1cm4gb3V0IGFzIFByZXNlbnRBcnJheTxVPjtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
\No newline at end of file