1.0.12 • Published 6 years ago

lowdb-s3-adapter v1.0.12

Weekly downloads
3
License
ISC
Repository
-
Last release
6 years ago

lowdb-s3-adapter

Lowdb adapter that uses AWS S3 as a store.

Note: you must independently install aws-sdk and lowdb.

npm i lowdb aws-sdk lowdb-s3-adapter --save

Usage

let Adapter = require('lowdb-s3-adapter')
let adapter = new Adapter(params, AwsConfig, lowdbOpts)

Arguments

params (required)

  • S3 bucket name, key (file), tags, etc.
  • Arguments are passed to s3.upload()
  • use camel case ('bucket' instead of 'Bucket', 'key' instead of 'Key', etc.)
  • default = {}

Example

let params = {
  bucket: 'stackerror',
  key: 'data.json'
}

AwsConfig (optional)

  • passed to AWS constructor
  • here's what's happening under the hood: let s3 = new AWS.S3(AwsConfig)
  • default: { region: 'us-east-1' }

Example let AwsConfig = { region: 'us-east-2' }

lowdbOpts (optional)

  • defaults to:
 default = { 
   defaultValue = {}, 
   serialize = obj => JSON.stringify(obj, null, 2),
   deserialize = JSON.parse 
 }

Examples

const Adapter = require('lowdb-s3-adapter')
const low = require('lowdb')

let adapter = new Adapter(
  { bucket: 'stackerror', key: 'data.json' },
  { region: 'us-east-1' }
)

async function init() {
  // low(adapter) must be awaited because calling low() performs an initial read
  let db = await low(adapter)

  db.defaults({ posts: [], user: {} })
    .write()

  db.get('posts')
    .push({ id: 1, title: 'lowdb is awesome'})
    .write()

  db.set('user.name', 'typicode')
    .write()

  let state = db.get('posts').value()

  console.log(state)
  // => [ { id: 1, title: 'lowdb is awesome' } ]
}

init()
1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago