web数据的存储方案,内置了 indexeddb 和 localstorage;支持 sql 语句,和反向转换 sql。可以自定义我们自己的 store 方案。自定义的 store 支持接收 sql 或者一个对象。dswda 会根据 store 接受的类型自动转换成对应的参数类型;
# 通过npm下载
npm i dswda -S
let { initDB } = dswda
let app = initDB({
dname:'db4',
tables:[
{
name:'tb1',
primaryKey:'id',
auto:true,
fields:[{
name:'id',
unique:true,
default:2,
type:'varchar(10)'
},{
name:'name',
unique:false,
type:'string',
},{
name:'age',
unique:false,
type:'string'
}],
}
],
version:1
})
let manager = app.exec()
console.log('this is dswda manager',maanger)
method | field | desc |
---|---|---|
initDB | qry::DataBase | 初始化存储 db |
createDB | qry::DataBase | 创建一个存储 db |
get | storeName:string | 通过一个 key 获取内容 |
set | {key:name,v:value} tip:个别 store 不支持 | 通过 key 设置 value |
dbList | none | 获取支持的 store 列表 |
delDb | dbName::string | 根据 store 名称删除 store |
updateDb | qry::DataBase | 更新 store |
openDb | dbName::string | 打开一个 store |
select | qry::(SelectType or string) | 查询数据 |
insert | qry::InsertType | 添加数据 |
update | qry::UpdateType | 更新数据 |
delete | qry::DeleteType | 删除数据 |
sql | sqlStr::string | 支持 sql 语法 |
version | qry::boolean | 获取当前 store 版本号 |
switchOrigin | storeName::string | 切换 store 源 |
方法中接收的类型
field | type | desc | required |
---|---|---|---|
dname | string | 存储 db 的名称 | true |
tables | Table[] | store 的集合 | false |
version | boolean | 存储 db 的版本 | false |
field | type | desc | required |
---|---|---|---|
name | store 的名称 | 存储 db 的名称 | true |
fields | FieldMeta[] | store 的集合 | false |
primaryKey | boolean | 是否是唯一值 | false |
auto | boolean | 主键是否自动递增 | false |
field | type | desc | required |
---|---|---|---|
name | string | 字段名 | true |
primaryKey | boolean | 是否是主键唯一值 | false default:false |
auto | boolean | 主键是否自动递增 | false default:false |
autoIncrement | boolean | 同 auto | false default:false |
unique | boolean | 是否是唯一值 | false default:false |
type | FieldType | 字段值存储类型 | false default:text |
notNull | none | - | false |
dataType | none | - | false |
default | none | - | false |
multiEntry | none | - | false |
enableSearch | none | - | false |
keyPath | none | - | false |
field | type | desc | required |
---|---|---|---|
order | 'asc' or 'desc' | 排序 | false default: 'desc' |
groupBy | string or string[] | 分组 | false |
having | object | 对查询的数据二次筛选条件 | false |
limit | number or number[] | 分页 | false |
where | WhereQry | 查询条件 | false |
field | type | desc | required |
---|---|---|---|
from | string | 来源的 store | true |
fields | (FieldMeta[] or string or string[] ) | 查询的字段 | false |
field | type | desc | required |
---|---|---|---|
into | string | 来源的 store | true |
values | InsertTypeMeta[] | 插入的一个数组 | true |
field | type | desc | required |
---|---|---|---|
from | string | 来源的 store | true |
set | InsertTypeMeta[] | 修改的对象 | true |
where | WhereQry | 查询条件 | false |
field | type | desc | required |
---|---|---|---|
from | string | 来源的 store | true |
where | WhereQry | 查询条件 | false |
{ [key: string]: any; }
WhereQryObj | WhereQryArray | string;
Array
{ [key: string]: WhereQryObj | string | WhereQryValueObj; }
field | type | desc | required |
---|---|---|---|
attr | string | 字段名称 | true |
value | any | 字段值 | false |
type | enum | 'and' or 'or' | false |
dswda 支持中间件,每次执行和完成后都会经过中间件的过滤。一个洋葱模型对象。
- 稍后补充
dswda 支持插件,比如:增加日志插件,打点插件等;
- 稍后补充
dswda 内置了 indexeddb 和 localStorerage;但是他并不仅仅只有这些。他对外提供了一些接口和抽象类。只要去继承他,并且实现这些方法,就可以手动开发一个我们自己的 store 数据管理存储库。 如果你不想继承这些接口或者抽象类,那么只要按照他的规范也可以。他是宽松的;有两种方式去开发我们自定义的 store
- 开发一个 clalss 对象,并继承对外提供的 interface 或者 abstruct
- 直接按照规范去实现这些方法即可;
本项目基于 MIT,请自由的享受和参与开源。