Giter VIP home page Giter VIP logo

pouchdb-hoodie-store's Introduction

NOTE: THIS IS WORK IN PROGRESS

Want to give a hand? We're happy to get you going. Ping us @HoodieHQ or in the Hoodie Community Chat.


pouchdb-hoodie-store

Hoodie-like Store & Sync API on top of PouchDB

Build Status Coverage Status Dependency Status devDependency Status

NPM

This plugin provides simple methods store and sync data. It combines pouchdb-hoodie-api, pouchdb-hoodie-sync, and pouchdb-hoodie-local-changes.

API

store = new Store(dbName, options)
// example:
// store = new Store('mydbname', { remote: 'http://localhost:5984/mydbname' })
// or:
// Store.defaults({remoteBaseUrl: 'http://localhost:5984' })
// store = new Store('mydb')

// all methods return promises
store.add(object)
store.add([object1, id2])
store.find(id)
store.find(object) // with id property
store.findOrAdd(id, object)
store.findOrAdd(object)
store.findOrAdd([object1, id2])
store.findAll()
store.findAll(filterFunction)
store.update(id, changedProperties)
store.update(id, updateFunction)
store.update(object)
store.update([object1, id2])
store.updateOrAdd(id, object)
store.updateOrAdd(object)
store.updateOrAdd([object1, id2])
store.updateAll(changedProperties)
store.updateAll(updateFunction)
store.remove(id)
store.remove(object)
store.remove([object1, id2])
store.removeAll()
store.removeAll(filterFunction)
store.clear() // removes all data without triggering events

// sync methods, return native promises
store.pull() // pulls changes one-time
store.push() // pushes changes one-time
store.sync() // pulls and pushes changes one-time
store.connect() // starts continuous replication
store.disconnect() // stops continuous replication and all pending requests
store.isConnected()
// pull / push / sync can be filtered by id, object, array
store.pull('objectId')
store.push(object)
store.push(['object1Id', object2])

store.getLocalChanges()
store.getLocalChanges(id)
store.getLocalChanges(object)
store.getLocalChanges([object1, id2])

// events
store.on('add', function(object, options) {})
store.on('update', function(object, options) {})
store.on('remove', function(object, options) {})
store.on('change', function(eventName, object, options) {})
store.on('pull', function(object) {})
store.on('push', function(object) {})
store.on('connect', function(object) {})
store.on('disconnect', function(object) {})
store.one(event, handler)
store.off(event, handler)

Installation

Install via npm

npm install --save pouchdb
npm install --save pouchdb-hoodie-store

Including the plugin

With browserify or on node.js/io.js

Attach this plugin to the PouchDB object:

var PouchDB = require('pouchdb')
PouchDB.plugin(require('pouchdb-hoodie-store'))

In the browser

Include this plugin after pouchdb.js in your HTML page:

<script src="node_modules/pouchdb/dist/pouchdb.js"></script>
<script src="node_modules/pouchdb-hoodie-store/dist/pouchdb-hoodie-store.js"></script>

Testing

Sauce Test Status

Test are currently not running on >IE10 and mobile Safari. This is likely an error with the setup and we would be more than happy if you'd want to fix that :)

In Node.js

Run all tests and validates JavaScript Code Style using standard

npm test

To run only the tests

npm run test:node

In the browser

test:browser:local

This will start a local server. All tests and coverage will be run at http://localhost:8080/__zuul

Contributing

Have a look at the Hoodie project's contribution guidelines. If you want to hang out you can join #hoodie-pouch on our Hoodie Community Slack.

pouchdb-hoodie-store's People

Contributors

hipsterbrown avatar gr2m avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.