UNPKG

ember-legacy-class-transform

Version:
83 lines (69 loc) 7.27 kB
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } import { ensureGuid } from './guid'; var proto = Object.create(null, { // without this, we will always still end up with (new // EmptyObject()).constructor === Object constructor: { value: undefined, enumerable: false, writable: true } }); function EmptyObject() {} EmptyObject.prototype = proto; export function dict() { // let d = Object.create(null); // d.x = 1; // delete d.x; // return d; return new EmptyObject(); } export var DictSet = function () { function DictSet() { _classCallCheck(this, DictSet); this.dict = dict(); } DictSet.prototype.add = function add(obj) { if (typeof obj === 'string') this.dict[obj] = obj;else this.dict[ensureGuid(obj)] = obj; return this; }; DictSet.prototype.delete = function _delete(obj) { if (typeof obj === 'string') delete this.dict[obj];else if (obj._guid) delete this.dict[obj._guid]; }; DictSet.prototype.forEach = function forEach(callback) { var dict = this.dict; var dictKeys = Object.keys(dict); for (var i = 0; dictKeys.length; i++) { callback(dict[dictKeys[i]]); } }; DictSet.prototype.toArray = function toArray() { return Object.keys(this.dict); }; return DictSet; }(); export var Stack = function () { function Stack() { _classCallCheck(this, Stack); this.stack = []; this.current = null; } Stack.prototype.toArray = function toArray() { return this.stack; }; Stack.prototype.push = function push(item) { this.current = item; this.stack.push(item); }; Stack.prototype.pop = function pop() { var item = this.stack.pop(); var len = this.stack.length; this.current = len === 0 ? null : this.stack[len - 1]; return item === undefined ? null : item; }; Stack.prototype.isEmpty = function isEmpty() { return this.stack.length === 0; }; return Stack; }(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb2xsZWN0aW9ucy5qcyJdLCJuYW1lcyI6WyJlbnN1cmVHdWlkIiwicHJvdG8iLCJPYmplY3QiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwidW5kZWZpbmVkIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiRW1wdHlPYmplY3QiLCJwcm90b3R5cGUiLCJkaWN0IiwiRGljdFNldCIsImFkZCIsIm9iaiIsImRlbGV0ZSIsIl9ndWlkIiwiZm9yRWFjaCIsImNhbGxiYWNrIiwiZGljdEtleXMiLCJrZXlzIiwiaSIsImxlbmd0aCIsInRvQXJyYXkiLCJTdGFjayIsInN0YWNrIiwiY3VycmVudCIsInB1c2giLCJpdGVtIiwicG9wIiwibGVuIiwiaXNFbXB0eSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxVQUFULFFBQTJCLFFBQTNCO0FBQ0EsSUFBSUMsUUFBUUMsT0FBT0MsTUFBUCxDQUFjLElBQWQsRUFBb0I7QUFDNUI7QUFDQTtBQUNBQyxpQkFBYTtBQUNUQyxlQUFPQyxTQURFO0FBRVRDLG9CQUFZLEtBRkg7QUFHVEMsa0JBQVU7QUFIRDtBQUhlLENBQXBCLENBQVo7QUFTQSxTQUFTQyxXQUFULEdBQXVCLENBQUU7QUFDekJBLFlBQVlDLFNBQVosR0FBd0JULEtBQXhCO0FBQ0EsT0FBTyxTQUFTVSxJQUFULEdBQWdCO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBTyxJQUFJRixXQUFKLEVBQVA7QUFDSDtBQUNELFdBQWFHLE9BQWI7QUFDSSx1QkFBYztBQUFBOztBQUNWLGFBQUtELElBQUwsR0FBWUEsTUFBWjtBQUNIOztBQUhMLHNCQUlJRSxHQUpKLGdCQUlRQyxHQUpSLEVBSWE7QUFDTCxZQUFJLE9BQU9BLEdBQVAsS0FBZSxRQUFuQixFQUE2QixLQUFLSCxJQUFMLENBQVVHLEdBQVYsSUFBaUJBLEdBQWpCLENBQTdCLEtBQXVELEtBQUtILElBQUwsQ0FBVVgsV0FBV2MsR0FBWCxDQUFWLElBQTZCQSxHQUE3QjtBQUN2RCxlQUFPLElBQVA7QUFDSCxLQVBMOztBQUFBLHNCQVFJQyxNQVJKLG9CQVFXRCxHQVJYLEVBUWdCO0FBQ1IsWUFBSSxPQUFPQSxHQUFQLEtBQWUsUUFBbkIsRUFBNkIsT0FBTyxLQUFLSCxJQUFMLENBQVVHLEdBQVYsQ0FBUCxDQUE3QixLQUF3RCxJQUFJQSxJQUFJRSxLQUFSLEVBQWUsT0FBTyxLQUFLTCxJQUFMLENBQVVHLElBQUlFLEtBQWQsQ0FBUDtBQUMxRSxLQVZMOztBQUFBLHNCQVdJQyxPQVhKLG9CQVdZQyxRQVhaLEVBV3NCO0FBQUEsWUFDUlAsSUFEUSxHQUNDLElBREQsQ0FDUkEsSUFEUTs7QUFFZCxZQUFJUSxXQUFXakIsT0FBT2tCLElBQVAsQ0FBWVQsSUFBWixDQUFmO0FBQ0EsYUFBSyxJQUFJVSxJQUFJLENBQWIsRUFBZ0JGLFNBQVNHLE1BQXpCLEVBQWlDRCxHQUFqQyxFQUFzQztBQUNsQ0gscUJBQVNQLEtBQUtRLFNBQVNFLENBQVQsQ0FBTCxDQUFUO0FBQ0g7QUFDSixLQWpCTDs7QUFBQSxzQkFrQklFLE9BbEJKLHNCQWtCYztBQUNOLGVBQU9yQixPQUFPa0IsSUFBUCxDQUFZLEtBQUtULElBQWpCLENBQVA7QUFDSCxLQXBCTDs7QUFBQTtBQUFBO0FBc0JBLFdBQWFhLEtBQWI7QUFDSSxxQkFBYztBQUFBOztBQUNWLGFBQUtDLEtBQUwsR0FBYSxFQUFiO0FBQ0EsYUFBS0MsT0FBTCxHQUFlLElBQWY7QUFDSDs7QUFKTCxvQkFLSUgsT0FMSixzQkFLYztBQUNOLGVBQU8sS0FBS0UsS0FBWjtBQUNILEtBUEw7O0FBQUEsb0JBUUlFLElBUkosaUJBUVNDLElBUlQsRUFRZTtBQUNQLGFBQUtGLE9BQUwsR0FBZUUsSUFBZjtBQUNBLGFBQUtILEtBQUwsQ0FBV0UsSUFBWCxDQUFnQkMsSUFBaEI7QUFDSCxLQVhMOztBQUFBLG9CQVlJQyxHQVpKLGtCQVlVO0FBQ0YsWUFBSUQsT0FBTyxLQUFLSCxLQUFMLENBQVdJLEdBQVgsRUFBWDtBQUNBLFlBQUlDLE1BQU0sS0FBS0wsS0FBTCxDQUFXSCxNQUFyQjtBQUNBLGFBQUtJLE9BQUwsR0FBZUksUUFBUSxDQUFSLEdBQVksSUFBWixHQUFtQixLQUFLTCxLQUFMLENBQVdLLE1BQU0sQ0FBakIsQ0FBbEM7QUFDQSxlQUFPRixTQUFTdEIsU0FBVCxHQUFxQixJQUFyQixHQUE0QnNCLElBQW5DO0FBQ0gsS0FqQkw7O0FBQUEsb0JBa0JJRyxPQWxCSixzQkFrQmM7QUFDTixlQUFPLEtBQUtOLEtBQUwsQ0FBV0gsTUFBWCxLQUFzQixDQUE3QjtBQUNILEtBcEJMOztBQUFBO0FBQUEiLCJmaWxlIjoibGliL2NvbGxlY3Rpb25zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlR3VpZCB9IGZyb20gJy4vZ3VpZCc7XG5sZXQgcHJvdG8gPSBPYmplY3QuY3JlYXRlKG51bGwsIHtcbiAgICAvLyB3aXRob3V0IHRoaXMsIHdlIHdpbGwgYWx3YXlzIHN0aWxsIGVuZCB1cCB3aXRoIChuZXdcbiAgICAvLyBFbXB0eU9iamVjdCgpKS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfVxufSk7XG5mdW5jdGlvbiBFbXB0eU9iamVjdCgpIHt9XG5FbXB0eU9iamVjdC5wcm90b3R5cGUgPSBwcm90bztcbmV4cG9ydCBmdW5jdGlvbiBkaWN0KCkge1xuICAgIC8vIGxldCBkID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAvLyBkLnggPSAxO1xuICAgIC8vIGRlbGV0ZSBkLng7XG4gICAgLy8gcmV0dXJuIGQ7XG4gICAgcmV0dXJuIG5ldyBFbXB0eU9iamVjdCgpO1xufVxuZXhwb3J0IGNsYXNzIERpY3RTZXQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpY3QgPSBkaWN0KCk7XG4gICAgfVxuICAgIGFkZChvYmopIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB0aGlzLmRpY3Rbb2JqXSA9IG9iajtlbHNlIHRoaXMuZGljdFtlbnN1cmVHdWlkKG9iaildID0gb2JqO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZGVsZXRlKG9iaikge1xuICAgICAgICBpZiAodHlwZW9mIG9iaiA9PT0gJ3N0cmluZycpIGRlbGV0ZSB0aGlzLmRpY3Rbb2JqXTtlbHNlIGlmIChvYmouX2d1aWQpIGRlbGV0ZSB0aGlzLmRpY3Rbb2JqLl9ndWlkXTtcbiAgICB9XG4gICAgZm9yRWFjaChjYWxsYmFjaykge1xuICAgICAgICBsZXQgeyBkaWN0IH0gPSB0aGlzO1xuICAgICAgICBsZXQgZGljdEtleXMgPSBPYmplY3Qua2V5cyhkaWN0KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGRpY3RLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhkaWN0W2RpY3RLZXlzW2ldXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9BcnJheSgpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZGljdCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFN0YWNrIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zdGFjayA9IFtdO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgICB0b0FycmF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFjaztcbiAgICB9XG4gICAgcHVzaChpdGVtKSB7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGl0ZW07XG4gICAgICAgIHRoaXMuc3RhY2sucHVzaChpdGVtKTtcbiAgICB9XG4gICAgcG9wKCkge1xuICAgICAgICBsZXQgaXRlbSA9IHRoaXMuc3RhY2sucG9wKCk7XG4gICAgICAgIGxldCBsZW4gPSB0aGlzLnN0YWNrLmxlbmd0aDtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gbGVuID09PSAwID8gbnVsbCA6IHRoaXMuc3RhY2tbbGVuIC0gMV07XG4gICAgICAgIHJldHVybiBpdGVtID09PSB1bmRlZmluZWQgPyBudWxsIDogaXRlbTtcbiAgICB9XG4gICAgaXNFbXB0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2subGVuZ3RoID09PSAwO1xuICAgIH1cbn0iXX0=