UNPKG

@glimmer/compiler

Version:
140 lines (107 loc) 9.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OptionalList = OptionalList; exports.EmptyList = exports.PresentList = void 0; var _util = require("@glimmer/util"); function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } var PresentList = /*#__PURE__*/function () { function PresentList(list) { this.list = list; } var _proto = PresentList.prototype; _proto.toArray = function toArray() { return this.list; }; _proto.map = function map(callback) { var result = (0, _util.mapPresent)(this.list, callback); return new PresentList(result); }; _proto.filter = function filter(predicate) { var out = []; for (var _iterator = _createForOfIteratorHelperLoose(this.list), _step; !(_step = _iterator()).done;) { var item = _step.value; if (predicate(item)) { out.push(item); } } return OptionalList(out); }; _proto.toPresentArray = function toPresentArray() { return this.list; }; _proto.into = function into(_ref) { var ifPresent = _ref.ifPresent; return ifPresent(this); }; return PresentList; }(); exports.PresentList = PresentList; var EmptyList = /*#__PURE__*/function () { function EmptyList() { this.list = []; } var _proto2 = EmptyList.prototype; _proto2.map = function map(_callback) { return new EmptyList(); }; _proto2.filter = function filter(_predicate) { return new EmptyList(); }; _proto2.toArray = function toArray() { return this.list; }; _proto2.toPresentArray = function toPresentArray() { return null; }; _proto2.into = function into(_ref2) { var ifEmpty = _ref2.ifEmpty; return ifEmpty(); }; return EmptyList; }(); // export type OptionalList<T> = PresentList<T> | EmptyList<T>; exports.EmptyList = EmptyList; function OptionalList(value) { if ((0, _util.isPresent)(value)) { return new PresentList(value); } else { return new EmptyList(); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi9zaGFyZWQvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWUEsSUFBTSxXQUFOLEdBQUEsYUFBQSxZQUFBO0FBQ0UsV0FBQSxXQUFBLENBQUEsSUFBQSxFQUEwQztBQUFyQixTQUFBLElBQUEsR0FBQSxJQUFBO0FBQXlCOztBQURoRCxNQUFBLE1BQUEsR0FBQSxXQUFBLENBQUEsU0FBQTs7QUFBQSxFQUFBLE1BQUEsQ0FBQSxPQUFBLEdBR0UsU0FBQSxPQUFBLEdBQU87QUFDTCxXQUFPLEtBQVAsSUFBQTtBQUpKLEdBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsR0FBQSxHQU9FLFNBQUEsR0FBQSxDQUFBLFFBQUEsRUFBZ0M7QUFDOUIsUUFBSSxNQUFNLEdBQUcsc0JBQVcsS0FBRCxJQUFWLEVBQWIsUUFBYSxDQUFiO0FBQ0EsV0FBTyxJQUFBLFdBQUEsQ0FBUCxNQUFPLENBQVA7QUFUSixHQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLE1BQUEsR0FZRSxTQUFBLE1BQUEsQ0FBQSxTQUFBLEVBQXVEO0FBQ3JELFFBQUksR0FBRyxHQUFQLEVBQUE7O0FBRUEsU0FBQSxJQUFBLFNBQUEsR0FBQSwrQkFBQSxDQUFpQixLQUFqQixJQUFBLENBQUEsRUFBQSxLQUFBLEVBQUEsQ0FBQSxDQUFBLEtBQUEsR0FBQSxTQUFBLEVBQUEsRUFBQSxJQUFBLEdBQTRCO0FBQUEsVUFBNUIsSUFBNEIsR0FBQSxLQUFBLENBQUEsS0FBQTs7QUFDMUIsVUFBSSxTQUFTLENBQWIsSUFBYSxDQUFiLEVBQXFCO0FBQ25CLFFBQUEsR0FBRyxDQUFILElBQUEsQ0FBQSxJQUFBO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPLFlBQVksQ0FBbkIsR0FBbUIsQ0FBbkI7QUFyQkosR0FBQTs7QUFBQSxFQUFBLE1BQUEsQ0FBQSxjQUFBLEdBd0JFLFNBQUEsY0FBQSxHQUFjO0FBQ1osV0FBTyxLQUFQLElBQUE7QUF6QkosR0FBQTs7QUFBQSxFQUFBLE1BQUEsQ0FBQSxJQUFBLEdBNEJFLFNBQUEsSUFBQSxDQUFBLElBQUEsRUFBdUY7QUFBQSxRQUExRSxTQUEwRSxHQUFBLElBQUEsQ0FBMUUsU0FBMEU7QUFDckYsV0FBTyxTQUFTLENBQWhCLElBQWdCLENBQWhCO0FBN0JKLEdBQUE7O0FBQUEsU0FBQSxXQUFBO0FBQUEsQ0FBQSxFQUFBOzs7O0FBaUNBLElBQU0sU0FBTixHQUFBLGFBQUEsWUFBQTtBQUFBLFdBQUEsU0FBQSxHQUFBO0FBQ1csU0FBQSxJQUFBLEdBQUEsRUFBQTtBQXFCVjs7QUF0QkQsTUFBQSxPQUFBLEdBQUEsU0FBQSxDQUFBLFNBQUE7O0FBQUEsRUFBQSxPQUFBLENBQUEsR0FBQSxHQUdFLFNBQUEsR0FBQSxDQUFBLFNBQUEsRUFBaUM7QUFDL0IsV0FBTyxJQUFQLFNBQU8sRUFBUDtBQUpKLEdBQUE7O0FBQUEsRUFBQSxPQUFBLENBQUEsTUFBQSxHQU9FLFNBQUEsTUFBQSxDQUFBLFVBQUEsRUFBd0Q7QUFDdEQsV0FBTyxJQUFQLFNBQU8sRUFBUDtBQVJKLEdBQUE7O0FBQUEsRUFBQSxPQUFBLENBQUEsT0FBQSxHQVdFLFNBQUEsT0FBQSxHQUFPO0FBQ0wsV0FBTyxLQUFQLElBQUE7QUFaSixHQUFBOztBQUFBLEVBQUEsT0FBQSxDQUFBLGNBQUEsR0FlRSxTQUFBLGNBQUEsR0FBYztBQUNaLFdBQUEsSUFBQTtBQWhCSixHQUFBOztBQUFBLEVBQUEsT0FBQSxDQUFBLElBQUEsR0FtQkUsU0FBQSxJQUFBLENBQUEsS0FBQSxFQUFxRjtBQUFBLFFBQXhFLE9BQXdFLEdBQUEsS0FBQSxDQUF4RSxPQUF3RTtBQUNuRixXQUFPLE9BQVAsRUFBQTtBQXBCSixHQUFBOztBQUFBLFNBQUEsU0FBQTtBQUFBLENBQUEsRUFBQSxDLENBd0JBOzs7OztBQUVNLFNBQUEsWUFBQSxDQUFBLEtBQUEsRUFBNkM7QUFDakQsTUFBSSxxQkFBSixLQUFJLENBQUosRUFBc0I7QUFDcEIsV0FBTyxJQUFBLFdBQUEsQ0FBUCxLQUFPLENBQVA7QUFERixHQUFBLE1BRU87QUFDTCxXQUFPLElBQVAsU0FBTyxFQUFQO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbiwgUHJlc2VudEFycmF5IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBpc1ByZXNlbnQsIG1hcFByZXNlbnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbExpc3Q8VD4ge1xuICBtYXA8VT4oY2FsbGJhY2s6IChpbnB1dDogVCkgPT4gVSk6IE1hcExpc3Q8VCwgVSwgQW55T3B0aW9uYWxMaXN0PFQ+PjtcbiAgZmlsdGVyPFMgZXh0ZW5kcyBUPihcbiAgICBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gdmFsdWUgaXMgU1xuICApOiBBbnlPcHRpb25hbExpc3Q8Uz47XG4gIHRvQXJyYXkoKTogVFtdO1xuICB0b1ByZXNlbnRBcnJheSgpOiBPcHRpb248UHJlc2VudEFycmF5PFQ+PjtcbiAgaW50bzxVLCBWPihvcHRpb25zOiB7IGlmUHJlc2VudDogKGFycmF5OiBQcmVzZW50TGlzdDxUPikgPT4gVTsgaWZFbXB0eTogKCkgPT4gViB9KTogVSB8IFY7XG59XG5cbmV4cG9ydCBjbGFzcyBQcmVzZW50TGlzdDxUPiBpbXBsZW1lbnRzIE9wdGlvbmFsTGlzdDxUPiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGxpc3Q6IFByZXNlbnRBcnJheTxUPikge31cblxuICB0b0FycmF5KCk6IFByZXNlbnRBcnJheTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdDtcbiAgfVxuXG4gIG1hcDxVPihjYWxsYmFjazogKGlucHV0OiBUKSA9PiBVKTogTWFwTGlzdDxULCBVLCBQcmVzZW50TGlzdDxUPj4ge1xuICAgIGxldCByZXN1bHQgPSBtYXBQcmVzZW50KHRoaXMubGlzdCwgY2FsbGJhY2spO1xuICAgIHJldHVybiBuZXcgUHJlc2VudExpc3QocmVzdWx0KSBhcyBNYXBMaXN0PFQsIFUsIHRoaXM+O1xuICB9XG5cbiAgZmlsdGVyPFMgZXh0ZW5kcyBUPihwcmVkaWNhdGU6ICh2YWx1ZTogVCkgPT4gdmFsdWUgaXMgUyk6IEFueU9wdGlvbmFsTGlzdDxTPiB7XG4gICAgbGV0IG91dDogU1tdID0gW107XG5cbiAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubGlzdCkge1xuICAgICAgaWYgKHByZWRpY2F0ZShpdGVtKSkge1xuICAgICAgICBvdXQucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT3B0aW9uYWxMaXN0KG91dCk7XG4gIH1cblxuICB0b1ByZXNlbnRBcnJheSgpOiBQcmVzZW50QXJyYXk8VD4ge1xuICAgIHJldHVybiB0aGlzLmxpc3Q7XG4gIH1cblxuICBpbnRvPFUsIFY+KHsgaWZQcmVzZW50IH06IHsgaWZQcmVzZW50OiAoYXJyYXk6IFByZXNlbnRMaXN0PFQ+KSA9PiBVOyBpZkVtcHR5OiAoKSA9PiBWIH0pOiBVIHwgViB7XG4gICAgcmV0dXJuIGlmUHJlc2VudCh0aGlzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW1wdHlMaXN0PFQ+IGltcGxlbWVudHMgT3B0aW9uYWxMaXN0PFQ+IHtcbiAgcmVhZG9ubHkgbGlzdDogVFtdID0gW107XG5cbiAgbWFwPFU+KF9jYWxsYmFjazogKGlucHV0OiBUKSA9PiBVKTogTWFwTGlzdDxULCBVLCBFbXB0eUxpc3Q8VD4+IHtcbiAgICByZXR1cm4gbmV3IEVtcHR5TGlzdCgpIGFzIE1hcExpc3Q8VCwgVSwgdGhpcz47XG4gIH1cblxuICBmaWx0ZXI8UyBleHRlbmRzIFQ+KF9wcmVkaWNhdGU6ICh2YWx1ZTogVCkgPT4gdmFsdWUgaXMgUyk6IEFueU9wdGlvbmFsTGlzdDxTPiB7XG4gICAgcmV0dXJuIG5ldyBFbXB0eUxpc3QoKTtcbiAgfVxuXG4gIHRvQXJyYXkoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0O1xuICB9XG5cbiAgdG9QcmVzZW50QXJyYXkoKTogT3B0aW9uPFByZXNlbnRBcnJheTxUPj4ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaW50bzxVLCBWPih7IGlmRW1wdHkgfTogeyBpZlByZXNlbnQ6IChhcnJheTogUHJlc2VudExpc3Q8VD4pID0+IFU7IGlmRW1wdHk6ICgpID0+IFYgfSk6IFUgfCBWIHtcbiAgICByZXR1cm4gaWZFbXB0eSgpO1xuICB9XG59XG5cbi8vIGV4cG9ydCB0eXBlIE9wdGlvbmFsTGlzdDxUPiA9IFByZXNlbnRMaXN0PFQ+IHwgRW1wdHlMaXN0PFQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uYWxMaXN0PFQ+KHZhbHVlOiByZWFkb25seSBUW10pOiBBbnlPcHRpb25hbExpc3Q8VD4ge1xuICBpZiAoaXNQcmVzZW50KHZhbHVlKSkge1xuICAgIHJldHVybiBuZXcgUHJlc2VudExpc3QodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgRW1wdHlMaXN0PFQ+KCk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQW55T3B0aW9uYWxMaXN0PFQ+ID0gKFByZXNlbnRMaXN0PFQ+IHwgRW1wdHlMaXN0PFQ+KSAmIE9wdGlvbmFsTGlzdDxUPjtcblxuZXhwb3J0IHR5cGUgTWFwTGlzdDxULCBVLCBMIGV4dGVuZHMgT3B0aW9uYWxMaXN0PFQ+PiA9IEwgZXh0ZW5kcyBQcmVzZW50TGlzdDxUPlxuICA/IFByZXNlbnRMaXN0PFU+XG4gIDogTCBleHRlbmRzIEVtcHR5TGlzdDxUPlxuICA/IEVtcHR5TGlzdDxVPlxuICA6IG5ldmVyO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==