vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
23 lines (22 loc) • 881 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getGlobalObject = getGlobalObject;
exports.assertIsSingleModuleInstance = assertIsSingleModuleInstance;
const assert_js_1 = require("./assert.js");
/** Share information across module instances. */
function getGlobalObject(key, defaultValue) {
const globalObjects = getGlobalObjects();
const globalObject = (globalObjects[key] = globalObjects[key] || defaultValue);
return globalObject;
}
/** Assert that the module is instantiated only once. */
function assertIsSingleModuleInstance(key) {
const globalObjects = getGlobalObjects();
(0, assert_js_1.assert)(!(key in globalObjects));
}
function getGlobalObjects() {
const projectKey = '_vike';
// @ts-ignore
const globalObjects = (globalThis[projectKey] = globalThis[projectKey] || {});
return globalObjects;
}