63 lines
2.1 KiB
JavaScript
63 lines
2.1 KiB
JavaScript
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
|