UNPKG

next

Version:

The React Framework

125 lines (124 loc) 4.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { getCacheHandler: null, getCacheHandlerEntries: null, getCacheHandlers: null, initializeCacheHandlers: null, setCacheHandler: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { getCacheHandler: function() { return getCacheHandler; }, getCacheHandlerEntries: function() { return getCacheHandlerEntries; }, getCacheHandlers: function() { return getCacheHandlers; }, initializeCacheHandlers: function() { return initializeCacheHandlers; }, setCacheHandler: function() { return setCacheHandler; } }); const _default = /*#__PURE__*/ _interop_require_default(require("../lib/cache-handlers/default")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const debug = process.env.NEXT_PRIVATE_DEBUG_CACHE ? (message, ...args)=>{ console.log(`use-cache: ${message}`, ...args); } : undefined; const handlersSymbol = Symbol.for('@next/cache-handlers'); const handlersMapSymbol = Symbol.for('@next/cache-handlers-map'); const handlersSetSymbol = Symbol.for('@next/cache-handlers-set'); /** * The reference to the cache handlers. We store the cache handlers on the * global object so that we can access the same instance across different * boundaries (such as different copies of the same module). */ const reference = globalThis; function initializeCacheHandlers() { // If the cache handlers have already been initialized, don't do it again. if (reference[handlersMapSymbol]) { debug == null ? void 0 : debug('cache handlers already initialized'); return false; } debug == null ? void 0 : debug('initializing cache handlers'); reference[handlersMapSymbol] = new Map(); // Initialize the cache from the symbol contents first. if (reference[handlersSymbol]) { let fallback; if (reference[handlersSymbol].DefaultCache) { debug == null ? void 0 : debug('setting "default" cache handler from symbol'); fallback = reference[handlersSymbol].DefaultCache; } else { debug == null ? void 0 : debug('setting "default" cache handler from default'); fallback = _default.default; } reference[handlersMapSymbol].set('default', fallback); if (reference[handlersSymbol].RemoteCache) { debug == null ? void 0 : debug('setting "remote" cache handler from symbol'); reference[handlersMapSymbol].set('remote', reference[handlersSymbol].RemoteCache); } else { debug == null ? void 0 : debug('setting "remote" cache handler from default'); reference[handlersMapSymbol].set('remote', fallback); } } else { debug == null ? void 0 : debug('setting "default" cache handler from default'); reference[handlersMapSymbol].set('default', _default.default); debug == null ? void 0 : debug('setting "remote" cache handler from default'); reference[handlersMapSymbol].set('remote', _default.default); } // Create a set of the cache handlers. reference[handlersSetSymbol] = new Set(reference[handlersMapSymbol].values()); return true; } function getCacheHandler(kind) { // This should never be called before initializeCacheHandlers. if (!reference[handlersMapSymbol]) { throw Object.defineProperty(new Error('Cache handlers not initialized'), "__NEXT_ERROR_CODE", { value: "E649", enumerable: false, configurable: true }); } return reference[handlersMapSymbol].get(kind); } function getCacheHandlers() { if (!reference[handlersSetSymbol]) { return undefined; } return reference[handlersSetSymbol].values(); } function getCacheHandlerEntries() { if (!reference[handlersMapSymbol]) { return undefined; } return reference[handlersMapSymbol].entries(); } function setCacheHandler(kind, cacheHandler) { // This should never be called before initializeCacheHandlers. if (!reference[handlersMapSymbol] || !reference[handlersSetSymbol]) { throw Object.defineProperty(new Error('Cache handlers not initialized'), "__NEXT_ERROR_CODE", { value: "E649", enumerable: false, configurable: true }); } debug == null ? void 0 : debug('setting cache handler for "%s"', kind); reference[handlersMapSymbol].set(kind, cacheHandler); reference[handlersSetSymbol].add(cacheHandler); } //# sourceMappingURL=handlers.js.map