1.0.55 • Published 11 months ago

dswda v1.0.55

Weekly downloads
-
License
-
Repository
-
Last release
11 months ago

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)

方法集合

methodfielddesc
initDBqry::DataBase初始化存储 db
createDBqry::DataBase创建一个存储 db
getstoreName:string通过一个 key 获取内容
set{key:name,v:value} tip:个别 store 不支持通过 key 设置 value
dbListnone获取支持的 store 列表
delDbdbName::string根据 store 名称删除 store
updateDbqry::DataBase更新 store
openDbdbName::string打开一个 store
selectqry::(SelectType or string)查询数据
insertqry::InsertType添加数据
updateqry::UpdateType更新数据
deleteqry::DeleteType删除数据
sqlsqlStr::string支持 sql 语法
versionqry::boolean获取当前 store 版本号
switchOriginstoreName::string切换 store 源

type

方法中接收的类型

DataBase

fieldtypedescrequired
dnamestring存储 db 的名称true
tablesTable[]store 的集合false
versionboolean存储 db 的版本false

Table

fieldtypedescrequired
namestore 的名称存储 db 的名称true
fieldsFieldMeta[]store 的集合false
primaryKeyboolean是否是唯一值false
autoboolean主键是否自动递增false

FieldMeta

fieldtypedescrequired
namestring字段名true
primaryKeyboolean是否是主键唯一值false default:false
autoboolean主键是否自动递增false default:false
autoIncrementboolean同 autofalse default:false
uniqueboolean是否是唯一值false default:false
typeFieldType字段值存储类型false default:text
notNullnone-false
dataTypenone-false
defaultnone-false
multiEntrynone-false
enableSearchnone-false
keyPathnone-false

BaseQry

fieldtypedescrequired
order'asc' or 'desc'排序false default: 'desc'
groupBystring or string[]分组false
havingobject对查询的数据二次筛选条件false
limitnumber or number[]分页false
whereWhereQry查询条件false

SelectType extends BaseQry

fieldtypedescrequired
fromstring来源的 storetrue
fields(FieldMeta[] or string or string[] )查询的字段false

InsertType

fieldtypedescrequired
intostring来源的 storetrue
valuesInsertTypeMeta[]插入的一个数组true

UpdateType extends BaseQry

fieldtypedescrequired
fromstring来源的 storetrue
setInsertTypeMeta[]修改的对象true
whereWhereQry查询条件false

DeleteType extends BaseQry

fieldtypedescrequired
fromstring来源的 storetrue
whereWhereQry查询条件false

InsertTypeMeta

{

}

WhereQry

WhereQryObj | WhereQryArray | string;

WhereQryArray

Array

WhereQryObj

{ key: string: WhereQryObj | string | WhereQryValueObj; }

WhereQryValueObj

fieldtypedescrequired
attrstring字段名称true
valueany字段值false
typeenum'and' or 'or'false

middleware

dswda 支持中间件,每次执行和完成后都会经过中间件的过滤。一个洋葱模型对象。

  • 稍后补充

plugin

dswda 支持插件,比如:增加日志插件,打点插件等;

  • 稍后补充

扩展 store

dswda 内置了 indexeddb 和 localStorerage;但是他并不仅仅只有这些。他对外提供了一些接口和抽象类。只要去继承他,并且实现这些方法,就可以手动开发一个我们自己的 store 数据管理存储库。 如果你不想继承这些接口或者抽象类,那么只要按照他的规范也可以。他是宽松的;有两种方式去开发我们自定义的 store

  • 开发一个 clalss 对象,并继承对外提供的 interface 或者 abstruct
  • 直接按照规范去实现这些方法即可;

稍后补充

开源协议

本项目基于 MIT,请自由的享受和参与开源。

1.0.44

11 months ago

1.0.43

11 months ago

1.0.42

11 months ago

1.0.48

11 months ago

1.0.46

11 months ago

1.0.45

11 months ago

1.0.49

11 months ago

1.0.51

11 months ago

1.0.50

11 months ago

1.0.55

11 months ago

1.0.54

11 months ago

1.0.53

11 months ago

1.0.52

11 months ago

1.0.41

11 months ago

1.0.39

11 months ago

1.0.38

11 months ago

1.0.35

11 months ago

1.0.34

11 months ago

1.0.33

11 months ago

1.0.32

11 months ago

1.0.30

11 months ago

1.0.29

11 months ago

1.0.28

11 months ago

1.0.27

11 months ago

1.0.23

11 months ago

1.0.16

11 months ago

1.0.15

11 months ago

1.0.14

11 months ago

1.0.13

11 months ago

1.0.10

11 months ago

1.0.5

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago