node-storage-polyfill
Version:
A Web Storage API polyfill for Node.js environments
43 lines • 3.9 kB
JavaScript
import SessionStorage, { sessionStorageMap } from './session-storage';
import LocalStorage, { localStorageMap } from './local-storage';
const sessionStorageInstance = new SessionStorage();
global.sessionStorage = new Proxy(sessionStorageInstance, {
set: (object, prop, value) => {
if (Object.prototype.hasOwnProperty.call(SessionStorage.prototype, prop)) {
sessionStorageInstance[prop.toString()] = value;
}
else {
sessionStorageInstance.setItem(prop.toString(), value);
}
return true;
},
get: (target, name) => {
if (Object.prototype.hasOwnProperty.call(SessionStorage.prototype, name)) {
return sessionStorageInstance[name.toString()];
}
if (sessionStorageMap.has(name)) {
return sessionStorageInstance.getItem(name.toString());
}
}
});
const localStorageInstance = new LocalStorage();
global.localStorage = new Proxy(localStorageInstance, {
set: (object, prop, value) => {
if (Object.prototype.hasOwnProperty.call(SessionStorage.prototype, prop)) {
localStorageInstance[prop.toString()] = value;
}
else {
localStorageInstance.setItem(prop.toString(), value);
}
return true;
},
get: (target, name) => {
if (Object.prototype.hasOwnProperty.call(SessionStorage.prototype, name)) {
return localStorageInstance[name.toString()];
}
if (localStorageMap.has(name)) {
return localStorageInstance.getItem(name.toString());
}
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxjQUFjLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sWUFBWSxFQUFFLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEUsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0FBRXBELE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxLQUFLLENBQUMsc0JBQXNCLEVBQUU7SUFDeEQsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMzQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3hFLHNCQUFzQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNqRDthQUFNO1lBQ0wsc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN4RDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNwQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQixPQUFPLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLG9CQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7QUFFaEQsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTtJQUNwRCxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzNCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDeEUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQy9DO2FBQU07WUFDTCxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3REO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3BCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDeEUsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3QixPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7Q0FDRixDQUFDLENBQUMifQ==