UNPKG

@awayjs/core

Version:
42 lines (41 loc) 1.6 kB
var AbstractionSet = /** @class */ (function () { function AbstractionSet(pool) { this.pool = pool; this._abstractions = {}; } Object.defineProperty(AbstractionSet.prototype, "finalizer", { get: function () { var _this = this; return this.__finalizer || (this.__finalizer = new FinalizationRegistry(function (id) { var abstraction = _this._abstractions[id]; if (abstraction) { // check abstraction hasn't already been cleared abstraction.onClear(); } })); }, enumerable: false, configurable: true }); AbstractionSet.prototype.forEach = function (callback) { for (var key in this._abstractions) callback(this._abstractions[key]); }; AbstractionSet.prototype.getAbstraction = function (asset) { return this._abstractions[asset.id] || (this._abstractions[asset.id] = this.getNewAbstraction(asset)); }; AbstractionSet.prototype.checkAbstraction = function (asset) { return this._abstractions[asset.id]; }; AbstractionSet.prototype.clearAbstraction = function (id, assetType) { this.pool.storeAbstraction(this._abstractions[id], assetType); delete this._abstractions[id]; }; AbstractionSet.prototype.getNewAbstraction = function (asset) { var abstraction = this.pool.requestAbstraction(asset); abstraction.init(asset, this.pool); return abstraction; }; return AbstractionSet; }()); export { AbstractionSet };