Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@picgo/store

Package Overview
Dependencies
Maintainers
3
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@picgo/store

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

  • 2.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
598
increased by4.73%
Maintainers
3
Weekly downloads
 
Created
Source

PicGo/store

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

Coverage Status PicGo Convention

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)
  // {
  //   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)
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) // { total: x, data: [{...}, {...}, ...] }
}

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

async () => {
  const collection = await db.get({
    orderBy: 'desc', // ['desc' | 'asc'] -> order with created-time
    limit: 1, // limit >= 1
    offset: 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 () => {
  const result = await db.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 () => {
  const result = await db.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 () => {
  const result = await db.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 () => {
  const result = await db.getById('xxx')
  console.log(result) // undefined
}
RemoveById .removeById(id: string);
  • return: Promise<void>

To remove an item by id.

async () => {
  const result = await db.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 () => {
  const result = await db.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 () => {
  const result = await db.updateMany([
    {
      id: 'xxx', // need to have id
      imgUrl: '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

FAQs

Package last updated on 10 Sep 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc