1.1.2 • Published 2 years ago

storage-awesome v1.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

storage-awesome

一个简单好用的storage方法库

特性:

  • API简洁,功能齐全【has、get、set、delete、clear、isEmpty】
  • 条件查询【SS.get((key, value)=> value > 700)】
  • 数据超时过期【SS.set({c: 789}, 60*24)】
  • 数据隔离,互不干扰【见下“基本使用”】
  • 基本的数据混淆,不明文存储
  • Typescript

功能简介:

storage-awesome 的核心是工厂方法storageFactory,该方法接受两个入参,第一入参是Storage对象,如window.localStorage;第二入参是用来标识各实例唯一性的name,不同name的storage实例数据互相隔离。

工厂方法输出storage实例对象。实例对象有has、get、set、delete、clear、isEmpty几个方法,其中set、delete、clear支持链式操作。这些方法可以根据使用场景接收不同格式入参。

基于工厂方法,storage-awesome 预设了SessionStorage和LocalStorage两个实例对象,可以直接使用。SS和LS是它们的简写。

/* 基本使用 */
import storageFactory, {SessionStorage, LocalStorage, SS, LS} from 'storage-awesome';

let SessionA = storageFactory(window.sessionStorage, 'SessionA');
let SessionB = storageFactory(window.sessionStorage, 'SessionB');

SessionA.set({
	test: '123'
})
SessionB.set({
	test: '456'
})
//// SessionA 和 SessionB 相互隔离
SessionA.get('test') //'123'
SessionB.get('test') //'456'

LocalStorage
	.clear()
	.set({
		a: 1,
		b: 2
	})
	.set({
		c: 3,
		d: 4
	}, 10)
	.delete(['a', 'c'])
	.get();
//结果: {b: 2, d: 4} 

安装使用:

安装

npm install storage-awesome --save

使用

ES module:

import storageFactory, {SessionStorage, LocalStorage, SS, LS} from 'storage-awesome';

SS.set({abc: 123});
SS.has('abc');
//true

CommonJS:

const {storageFactory, SessionStorage, LocalStorage, SS, LS} = require('storage-awesome');

SS.set({abc: 123});
SS.delete('abc')
SS.has('abc');
//false

script 标签 引入:

<script src='https://unpkg.com/storage-awesome@1.1.2/dist/storage-awesome.min.js'></script>
const {storageFactory, SessionStorage, LocalStorage, SS, LS} = storage;
LS.clear();

API:

storageFactory:

入参(按顺序)类型是否必填默认值
Storage对象,可以是window.sessionStorage或者window.localStorage,或者其它实现了getItem和setItem方法的对象Storagewindow.sessionStorage
全局唯一namestring"storageAwesome"

实例方法:

当前版本包大小(取自webpack打包数据):

min:4.8KB
gzip:1.83KB

TODO:

  • 优化除虫
  • 完善测试
  • 完善数据混淆

更新日志:

  • 20210918(version 1.0.1): * 实例方法新增isEmpty,用以判断该storage是否无数据。
  • 20220908(version 1.1.1): 加入简单的数据混淆 工厂函数入参改为必填 修复数据超时后isEmpty不准确的问题 优化重复set入同一个字段数据时的超时逻辑(重复set入的时候,如果之前的数据未超时且没有重新输入超时时间,则默认按原设定的超时时间;如想取消之前设定的超时时间,可传入超时时间为0) * 优化readme和package.json
  • 20220915(version 1.1.2): * 把本组件的本地开发环境所需的node版本信息移出package.json