@glimmer/compiler
Version:
140 lines (107 loc) • 9.19 kB
JavaScript
;
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==