1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.isPresent = isPresent;
|
7 | exports.ifPresent = ifPresent;
|
8 | exports.toPresentOption = toPresentOption;
|
9 | exports.assertPresent = assertPresent;
|
10 | exports.mapPresent = mapPresent;
|
11 |
|
12 | function isPresent(list) {
|
13 | return list.length > 0;
|
14 | }
|
15 |
|
16 | function ifPresent(list, ifPresent, otherwise) {
|
17 | if (isPresent(list)) {
|
18 | return ifPresent(list);
|
19 | } else {
|
20 | return otherwise();
|
21 | }
|
22 | }
|
23 |
|
24 | function toPresentOption(list) {
|
25 | if (isPresent(list)) {
|
26 | return list;
|
27 | } else {
|
28 | return null;
|
29 | }
|
30 | }
|
31 |
|
32 | function assertPresent(list, message = `unexpected empty list`) {
|
33 | if (!isPresent(list)) {
|
34 | throw new Error(message);
|
35 | }
|
36 | }
|
37 |
|
38 | function 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 |