Skip to content

PicGo/store

Repository files navigation

PicGo/store

For PicGo projects to write & read data or configuration in disk.

Coverage StatusPicGo Convention

Usage

import{DBStore}from'@picgo/store'constdb=newDBStore('path/to/your/xxx.db','collectionName')constmain=async()=>{constresult=awaitdb.insert({imgUrl: 'xxxx.jpg',})console.log(result)//{// id: 'xxxxx',// imgUrl: 'xxx.jpg',// createdAt: 123123123123,// updatedAt: 123123123123// }}

API Reference

For now, @picgo/store has two export member: DBStore & JSONStore.

DBStore

  • new DBStore(dbPath: string, collectionName: string)
constdb=newDBStore('picgo.db','uploadImgs')

Get .get(filter?: IFilter)

  • return: Promise<IGetResult<IObject>[]>
  • interface: IGetResult

To get the whole collection value.

async()=>{constcollection=awaitdb.get()console.log(collection)//{total: x, data: [{...},{...}, ...] }}

To get filtered collection: (just like SQL orderBy, limit & offset)

async()=>{constcollection=awaitdb.get({orderBy: 'desc',// ['desc' | 'asc'] -> order with created-timelimit: 1,// limit >= 1offset: 0,// offset >= 0})console.log(collection)//{total: 1, data: [{...}] }}

Insert .insert<T>(value: T)

  • return: Promise<IResult<T>>
  • interface: IResult

To insert an item to collection.

async()=>{constresult=awaitdb.insert({imgUrl: 'https://xxxx.jpg'})console.log(result)//{// id: string,// imgUrl: string,// createdAt: number,// updatedAt: number // }}

InsertMany .insertMany<T>(value: T[])

  • return: Promise<IResult<T>[]>
  • interface: IResult

To insert multiple items to collection at once .

async()=>{constresult=awaitdb.insertMany([{imgUrl: 'https://xxxx.jpg'},{imgUrl: 'https://yyyy.jpg'}])console.log(result)// [{// id: string,// imgUrl: string,// createdAt: number,// updatedAt: number // },{// id: string,// imgUrl: string,// createdAt: number,// updatedAt: number // }]}

UpdateById .updateById(id: string, value: IObject)

  • return: Promise<boolean>
  • interface: IObject

To update an item by id. It will return false if the id does not exist.

async()=>{constresult=awaitdb.updateById('test-id',{test: 123})console.log(result)// true}

GetById .getById(id: string)

  • return: Promise<IObject | undefined>
  • interface: IObject

To get an item by id.

async()=>{constresult=awaitdb.getById('xxx')console.log(result)// undefined}

RemoveById .removeById(id: string);

  • return: Promise<void>

To remove an item by id.

async()=>{constresult=awaitdb.removeById('xxx')console.log(result)// undefined}

Overwrite .overwrite<T>(value: T[]) (v2.0.0)

  • return: Promise<IResult<T>[]>
  • interface: IResult

To overwrite whole collection:

async()=>{constresult=awaitdb.overwrite([{imgUrl: 'https://xxxx.jpg'},{imgUrl: 'https://yyyy.jpg'}])console.log(result)// [{// id: string,// imgUrl: string,// createdAt: number,// updatedAt: number // },{// id: string,// imgUrl: string,// createdAt: number,// updatedAt: number // }]}

UpdateMany .updateMany(list: IObject[]) (v2.1.0)

  • return: Promise<{total: number, success: number }>
  • interface: IObject

To update many items by id:

async()=>{constresult=awaitdb.updateMany([{id: 'xxx',// need to have idimgUrl: 'https://xxxx.jpg'},{id: 'yyy',imgUrl: 'https://yyyy.jpg'},{imgUrl: 'https://zzzz.jpg'}])console.log(result)//{total: 3, success: 2 }}

License

MIT

Copyright (c) 2020 Molunerfinn

About

For PicGo projects to write & read data or configuration in disk

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published