shadow$provide.module$node_modules$pixi_DOT_js$lib$assets$cache$Cache = function(global, require, module, exports) {
  var warn = require("module$node_modules$pixi_DOT_js$lib$utils$logging$warn"), convertToList = require("module$node_modules$pixi_DOT_js$lib$assets$utils$convertToList");
  "use strict";
  class CacheClass {
    constructor() {
      this._parsers = [];
      this._cache = new Map();
      this._cacheMap = new Map();
    }
    reset() {
      this._cacheMap.clear();
      this._cache.clear();
    }
    has(key) {
      return this._cache.has(key);
    }
    get(key) {
      const result = this._cache.get(key);
      result || warn.warn(`[Assets] Asset id ${key} was not found in the Cache`);
      return result;
    }
    set(key, value) {
      key = convertToList.convertToList(key);
      let cacheableAssets;
      for (var i = 0; i < this.parsers.length; i++) {
        const parser = this.parsers[i];
        if (parser.test(value)) {
          cacheableAssets = parser.getCacheableAssets(key, value);
          break;
        }
      }
      const cacheableMap = new Map(Object.entries(cacheableAssets || {}));
      cacheableAssets || key.forEach(key2 => {
        cacheableMap.set(key2, value);
      });
      i = [...cacheableMap.keys()];
      const cachedAssets = {cacheKeys:i, keys:key};
      key.forEach(key2 => {
        this._cacheMap.set(key2, cachedAssets);
      });
      i.forEach(key2 => {
        const val = cacheableAssets ? cacheableAssets[key2] : value;
        this._cache.has(key2) && this._cache.get(key2) !== val && warn.warn("[Cache] already has key:", key2);
        this._cache.set(key2, cacheableMap.get(key2));
      });
    }
    remove(key) {
      this._cacheMap.has(key) ? (key = this._cacheMap.get(key), key.cacheKeys.forEach(key2 => {
        this._cache.delete(key2);
      }), key.keys.forEach(key2 => {
        this._cacheMap.delete(key2);
      })) : warn.warn(`[Assets] Asset id ${key} was not found in the Cache`);
    }
    get parsers() {
      return this._parsers;
    }
  }
  global = new CacheClass();
  exports.Cache = global;
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$assets$cache$Cache.js.map
