49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
const sharedAsyncLocalStorageNotAvailableError = Object.defineProperty(new Error('Invariant: AsyncLocalStorage accessed in runtime where it is not available'), "__NEXT_ERROR_CODE", {
|
|
value: "E504",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
class FakeAsyncLocalStorage {
|
|
disable() {
|
|
throw sharedAsyncLocalStorageNotAvailableError;
|
|
}
|
|
getStore() {
|
|
// This fake implementation of AsyncLocalStorage always returns `undefined`.
|
|
return undefined;
|
|
}
|
|
run() {
|
|
throw sharedAsyncLocalStorageNotAvailableError;
|
|
}
|
|
exit() {
|
|
throw sharedAsyncLocalStorageNotAvailableError;
|
|
}
|
|
enterWith() {
|
|
throw sharedAsyncLocalStorageNotAvailableError;
|
|
}
|
|
static bind(fn) {
|
|
return fn;
|
|
}
|
|
}
|
|
const maybeGlobalAsyncLocalStorage = typeof globalThis !== 'undefined' && globalThis.AsyncLocalStorage;
|
|
export function createAsyncLocalStorage() {
|
|
if (maybeGlobalAsyncLocalStorage) {
|
|
return new maybeGlobalAsyncLocalStorage();
|
|
}
|
|
return new FakeAsyncLocalStorage();
|
|
}
|
|
export function bindSnapshot(fn) {
|
|
if (maybeGlobalAsyncLocalStorage) {
|
|
return maybeGlobalAsyncLocalStorage.bind(fn);
|
|
}
|
|
return FakeAsyncLocalStorage.bind(fn);
|
|
}
|
|
export function createSnapshot() {
|
|
if (maybeGlobalAsyncLocalStorage) {
|
|
return maybeGlobalAsyncLocalStorage.snapshot();
|
|
}
|
|
return function(fn, ...args) {
|
|
return fn(...args);
|
|
};
|
|
}
|
|
|
|
//# sourceMappingURL=async-local-storage.js.map
|