dswda
TypeScript icon, indicating that this package has built-in type declarations

1.0.55 • Public • Published

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

{ [key: string]: any; }

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,请自由的享受和参与开源。

Readme

Keywords

none

Package Sidebar

Install

npm i dswda

Weekly Downloads

1

Version

1.0.55

License

none

Unpacked Size

333 kB

Total Files

10

Last publish

Collaborators

  • lvxiaohui