dswda v1.0.55
dswda(Web data storage solution)
介绍
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 源 |
type
方法中接收的类型
DataBase
field | type | desc | required |
---|---|---|---|
dname | string | 存储 db 的名称 | true |
tables | Table[] | store 的集合 | false |
version | boolean | 存储 db 的版本 | false |
Table
field | type | desc | required |
---|---|---|---|
name | store 的名称 | 存储 db 的名称 | true |
fields | FieldMeta[] | store 的集合 | false |
primaryKey | boolean | 是否是唯一值 | false |
auto | boolean | 主键是否自动递增 | false |
FieldMeta
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 |
BaseQry
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 |
SelectType extends BaseQry
field | type | desc | required |
---|---|---|---|
from | string | 来源的 store | true |
fields | (FieldMeta[] or string or string[] ) | 查询的字段 | false |
InsertType
field | type | desc | required |
---|---|---|---|
into | string | 来源的 store | true |
values | InsertTypeMeta[] | 插入的一个数组 | true |
UpdateType extends BaseQry
field | type | desc | required |
---|---|---|---|
from | string | 来源的 store | true |
set | InsertTypeMeta[] | 修改的对象 | true |
where | WhereQry | 查询条件 | false |
DeleteType extends BaseQry
field | type | desc | required |
---|---|---|---|
from | string | 来源的 store | true |
where | WhereQry | 查询条件 | false |
InsertTypeMeta
{
}
WhereQry
WhereQryObj | WhereQryArray | string;
WhereQryArray
Array
WhereQryObj
{ key: string: WhereQryObj | string | WhereQryValueObj; }
WhereQryValueObj
field | type | desc | required |
---|---|---|---|
attr | string | 字段名称 | true |
value | any | 字段值 | false |
type | enum | 'and' or 'or' | false |
middleware
dswda 支持中间件,每次执行和完成后都会经过中间件的过滤。一个洋葱模型对象。
- 稍后补充
plugin
dswda 支持插件,比如:增加日志插件,打点插件等;
- 稍后补充
扩展 store
dswda 内置了 indexeddb 和 localStorerage;但是他并不仅仅只有这些。他对外提供了一些接口和抽象类。只要去继承他,并且实现这些方法,就可以手动开发一个我们自己的 store 数据管理存储库。 如果你不想继承这些接口或者抽象类,那么只要按照他的规范也可以。他是宽松的;有两种方式去开发我们自定义的 store
- 开发一个 clalss 对象,并继承对外提供的 interface 或者 abstruct
- 直接按照规范去实现这些方法即可;
稍后补充
开源协议
本项目基于 MIT,请自由的享受和参与开源。
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago