node-storage-polyfill
Version:
A Web Storage API polyfill for Node.js environments
37 lines • 2.55 kB
JavaScript
class Storage {
_length(storageMap) {
return storageMap.size;
}
clear(storageMap) {
storageMap.clear();
return storageMap;
}
getItem(key, storageMap) {
const stringKey = String(key);
if (storageMap.has(key)) {
return String(storageMap.get(stringKey));
}
return null;
}
key(index, storageMap) {
if (index === undefined) {
// This is the TypeError implemented in Chrome, Firefox throws "Storage.key: At least 1
// argument required, but only 0 passed".
throw new TypeError("Failed to execute 'key' on 'Storage': 1 argument required, but only 0 present.");
}
const keys = [...storageMap.keys()];
if (index >= keys.length) {
return null;
}
return keys[index];
}
removeItem(key, storageMap) {
storageMap.delete(key);
return storageMap;
}
setItem(key, value, storageMap) {
return storageMap.set(String(key), String(value));
}
}
export default Storage;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTztJQUdYLE9BQU8sQ0FBQyxVQUF5QjtRQUMvQixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUF5QjtRQUM3QixVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXLEVBQUUsVUFBeUI7UUFDNUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTlCLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDMUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBYSxFQUFFLFVBQXlCO1FBQzFDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2Qix1RkFBdUY7WUFDdkYseUNBQXlDO1lBQ3pDLE1BQU0sSUFBSSxTQUFTLENBQ2pCLGdGQUFnRixDQUNqRixDQUFDO1NBQ0g7UUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFcEMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXLEVBQUUsVUFBeUI7UUFDL0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsVUFBeUI7UUFDM0QsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFFRCxlQUFlLE9BQU8sQ0FBQyJ9