| 123456789101112131415161718192021222324252627282930 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.setTSInstanceInCache = exports.getTSInstanceFromCache = void 0;
- // Some loaders (e.g. thread-loader) will set the _compiler property to undefined.
- // We can't use undefined as a WeakMap key as it will throw an error at runtime,
- // thus we keep a dummy "marker" object to use as key in those situations.
- const marker = {};
- // Each TypeScript instance is cached based on the webpack instance (key of the WeakMap)
- // and also the name that was generated or passed via the options (string key of the
- // internal Map)
- const cache = new WeakMap();
- function getTSInstanceFromCache(key, name) {
- const compiler = key !== null && key !== void 0 ? key : marker;
- let instances = cache.get(compiler);
- if (!instances) {
- instances = new Map();
- cache.set(compiler, instances);
- }
- return instances.get(name);
- }
- exports.getTSInstanceFromCache = getTSInstanceFromCache;
- function setTSInstanceInCache(key, name, instance) {
- var _a;
- const compiler = key !== null && key !== void 0 ? key : marker;
- const instances = (_a = cache.get(compiler)) !== null && _a !== void 0 ? _a : new Map();
- instances.set(name, instance);
- cache.set(compiler, instances);
- }
- exports.setTSInstanceInCache = setTSInstanceInCache;
- //# sourceMappingURL=instance-cache.js.map
|