@hoodie/store-server

3.0.0 • Public • Published

hoodie-store-server

CouchDB API for data persistence and offline sync

Build Status Coverage Status Dependency Status devDependency Status

hoodie-store-server is a Hapi plugin that implements CouchDB’s Document API and exposes a JavaScript API to manage databases, access and replications.

Example

var Hapi = require('hapi')
var hoodieStore = require('@hoodie/store-server')
var PouchDB = require('pouchdb')

var server = new Hapi.Server()

server.connection({
  port: 8000
})

server.register({
  register: hoodieStore,
  options: {
    PouchDB: PouchDB
  }
}, function (error) {
  if (error) throw error
})


server.start(function () {
  console.log('Server running at %s', server.info.uri)
})

Options

options.PouchDB

PouchDB constructor. Required

options: {
  PouchDB: require('pouchdb-core').plugin('pouchdb-adapter-leveldb')
}

If you want connect to a CouchDB, use the pouchdb-adapter-http and set options.prefix to the CouchDB url. All requests will be proxied to CouchDB directly, the PouchDB constructor is only used for server.plugins.store.api

options: {
  PouchDB: require('pouchdb-core')
    .plugin('pouchdb-adapter-http')
    .defaults({
      prefix: 'http://localhost:5984',
      auth: {
        username: 'admin',
        password: 'secret'
      }
    })
}

options.hooks

Route lifecycle hooks. Optional

options: {
  hooks: {
    onPreResponse: onPreResponseHandler,
    onPreAuth: onPreAuthHandler,
    onPostAuth: onPostAuthHandler,
    onPreHandler: onPreHandlerHandler,
    onPostHandler: onPostHandlerHandler,
    onPreResponse: onPreResponseHandler
  }
}

See http://hapijs.com/api#request-lifecycle for more information

Testing

Local setup

git clone https://github.com/hoodiehq/hoodie-store-server.git
cd hoodie-store-server
npm install

Run all tests and code style checks

npm test

Contributing

Have a look at the Hoodie project's contribution guidelines. If you want to hang out you can join our Hoodie Community Chat.

License

Apache 2.0

Dependencies (11)

Dev Dependencies (14)

Package Sidebar

Install

npm i @hoodie/store-server

Weekly Downloads

18

Version

3.0.0

License

Apache-2.0

Last publish

Collaborators

  • hoodie