storages-proxy
v2.1.0
Published
A simple, lightweight JavaScript API for handling browser storages
Downloads
19
Maintainers
Readme
storages-proxy
为 localStorage
和 sessionStorage
添加作用域,避免全局污染,特别适合在微前端等项目场景中使用。
目录
安装
使用 npm 安装:
npm install storages-proxy
或使用 pnpm 安装:
pnpm add storages-proxy
API
createGlobalStorage
createGlobalStorage(type: Type, options?: Partial<Options>): void
创建指定类型的全局存储,并设置作用域。
参数
type
(Type
): 存储类型,可以是localStorage
或sessionStorage
。options
(Partial<Options>
, 可选): 存储的属性配置,包括路径。
updateGlobalStorage
updateGlobalStorage(type: Type, options?: Partial<Options>, force?: boolean): void
更新指定类型的全局存储的作用域。
参数
type
(Type
): 存储类型,可以是localStorage
或sessionStorage
。options
(Partial<Options>
, 可选): 存储的属性配置,包括路径。force
(boolean
, 可选): 是否重置属性配置。
示例
import {
length,
createGlobalStorage,
updateGlobalStorage,
} from 'storages-proxy';
// 创建 `默认作用域为当前路径` 的 localStorage 和 sessionStorage
createGlobalStorage('localStorage');
createGlobalStorage('localStorage', { include: [ 'key' ] });
// 创建 `默认作用域为指定路径` 的 localStorage 和 sessionStorage
createGlobalStorage('localStorage', { path: '/path' });
createGlobalStorage('localStorage', { path: '/path', include: [ 'key' ] });
// 更新 localStorage 的默认作用域为当前路径
updateGlobalStorage('localStorage');
// 更新 localStorage 的默认作用域为指定路径
updateGlobalStorage('localStorage', { path: '/new-path' });
// 设置一个键值对,使用默认作用域
localStorage.key = 'value';
// 或
localStorage.setItem('key1', 'value1');
// 设置一个键值对,使用指定作用域
localStorage.setItem('key2', 'value2', '/path');
// 设置一个键值对,不使用作用域
localStorage.setItem('key3', 'value3', null);
// 获取一个键值对,使用默认作用域
console.log(localStorage.key); // 输出 'value'
// 或
console.log(localStorage.getItem('key1')); // 输出 'value1'
// 获取一个键值对,使用指定作用域
console.log(localStorage.getItem('key2', '/path')); // 输出 'value2'
// 获取一个键值对,不使用作用域
console.log(localStorage.getItem('key3', null)); // 输出 'value3'
// 移除一个键值对,使用默认作用域
delete localStorage.key;
// 或
localStorage.removeItem('key1');
// 移除一个键值对,使用指定作用域
localStorage.removeItem('key2', '/path');
// 移除一个键值对,不使用作用域
localStorage.removeItem('key3', null);
// 获取默认作用域下第 n 个键名
localStorage.key(0);
// 获取指定作用域下第 n 个键名
localStorage.key(0, '/path');
// 获取第 n 个键名
localStorage.key(0, null);
// 清除默认作用域下的所有键值对
localStorage.clear();
// 清除指定作用域下的所有键值对
localStorage.clear('/path');
// 清除所有键值对
localStorage.clear(null);
// 获取默认作用域下的数据项数量
localStorage.length;
// 或
length('localStorage');
// 获取指定作用域下的数据项数量
length('localStorage', '/path');
// 获取数据项数量
length('localStorage', null);
类型定义
export type Type = 'localStorage' | 'sessionStorage';
export type Path = string | (() => string);
export type Options = { path: Path, include?: string[], exclude?: string[] };
declare global {
interface Window {
__STORAGES_DEFAULT__: Record<Type, Options>;
__STORAGES_INIT__: Record<Type, boolean>;
}
}
许可
MIT License. 查看 LICENSE 文件了解更多信息。