nstdlib-nightly
Version:
Node.js standard library converted to runtime-agnostic ES modules.
71 lines (58 loc) • 2.15 kB
JavaScript
// Source: https://github.com/nodejs/node/blob/65eff1eb/lib/internal/webstorage.js
import { codes as __codes__ } from "nstdlib/lib/internal/errors";
import { getOptionValue } from "nstdlib/lib/internal/options";
import { emitExperimentalWarning } from "nstdlib/lib/internal/util";
import { kConstructorKey, Storage } from "nstdlib/stub/binding/webstorage";
import { getValidatedPath } from "nstdlib/lib/internal/fs/utils";
let _module_exports_ = {};
export { _module_exports_ as default };
const { ERR_INVALID_ARG_VALUE } = __codes__;
const kInMemoryPath = ":memory:";
emitExperimentalWarning("Web Storage");
_module_exports_ = { Storage };
let lazyLocalStorage;
let lazySessionStorage;
const ____proto___localStorage_session__ = {};
Object.defineProperties(____proto___localStorage_session__, {
__proto__: null,
localStorage: {
__proto__: null,
configurable: true,
enumerable: true,
get() {
if (lazyLocalStorage === undefined) {
const location = getOptionValue("--localstorage-file");
if (location === "") {
throw new ERR_INVALID_ARG_VALUE(
"--localstorage-file",
location,
"is an invalid localStorage location",
);
}
lazyLocalStorage = new Storage(
kConstructorKey,
getValidatedPath(location),
);
}
return lazyLocalStorage;
},
},
sessionStorage: {
__proto__: null,
configurable: true,
enumerable: true,
get() {
if (lazySessionStorage === undefined) {
lazySessionStorage = new Storage(kConstructorKey, kInMemoryPath);
}
return lazySessionStorage;
},
},
});
_module_exports_.__proto__ = ____proto___localStorage_session__.__proto__;
_module_exports_.localStorage = ____proto___localStorage_session__.localStorage;
_module_exports_.sessionStorage =
____proto___localStorage_session__.sessionStorage;
export const __proto__ = ____proto___localStorage_session__.__proto__;
export const localStorage = ____proto___localStorage_session__.localStorage;
export const sessionStorage = ____proto___localStorage_session__.sessionStorage;