PicGo/store
For PicGo projects to write & read data or configuration in disk.
Usage
import { DBStore } from '@picgo/store'
const db = new DBStore('path/to/your/xxx.db', 'collectionName')
const main = async () => {
const result = await db.insert({
imgUrl: 'xxxx.jpg',
})
console.log(result)
}
API Reference
For now, @picgo/store
has two export member: DBStore
& JSONStore
.
DBStore
new DBStore(dbPath: string, collectionName: string)
const db = new DBStore('picgo.db', 'uploadImgs')
Get .get(filter?: IFilter)
- return:
Promise<IGetResult<IObject>[]>
- interface: IGetResult
To get the whole collection value.
async () => {
const collection = await db.get()
console.log(collection)
}
To get filtered collection: (just like SQL orderBy
, limit
& offset
)
async () => {
const collection = await db.get({
orderBy: 'desc',
limit: 1,
offset: 0,
})
console.log(collection)
}
Insert .insert<T>(value: T)
- return:
Promise<IResult<T>>
- interface: IResult
To insert an item to collection.
async () => {
const result = await db.insert({
imgUrl: 'https://xxxx.jpg'
})
console.log(result)
}
InsertMany .insertMany<T>(value: T[])
- return:
Promise<IResult<T>[]>
- interface: IResult
To insert multiple items to collection at once .
async () => {
const result = await db.insertMany([
{
imgUrl: 'https://xxxx.jpg'
},
{
imgUrl: 'https://yyyy.jpg'
}
])
console.log(result)
}
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 () => {
const result = await db.updateById('test-id', {
test: 123
})
console.log(result)
}
GetById .getById(id: string)
- return:
Promise<IObject | undefined>
- interface: IObject
To get an item by id.
async () => {
const result = await db.getById('xxx')
console.log(result)
}
RemoveById .removeById(id: string)
;
To remove an item by id.
async () => {
const result = await db.removeById('xxx')
console.log(result)
}
Overwrite .overwrite<T>(value: T[])
(v2.0.0)
- return:
Promise<IResult<T>[]>
- interface: IResult
To overwrite whole collection:
async () => {
const result = await db.overwrite([
{
imgUrl: 'https://xxxx.jpg'
},
{
imgUrl: 'https://yyyy.jpg'
}
])
console.log(result)
}
UpdateMany .updateMany(list: IObject[])
(v2.1.0)
- return:
Promise<{ total: number, success: number }>
- interface: IObject
To update many items by id:
async () => {
const result = await db.updateMany([
{
id: 'xxx',
imgUrl: 'https://xxxx.jpg'
},
{
id: 'yyy',
imgUrl: 'https://yyyy.jpg'
},
{
imgUrl: 'https://zzzz.jpg'
}
])
console.log(result)
}
License
MIT
Copyright (c) 2020 Molunerfinn