A client side service based on feathers-memory that persists to LocalStorage
JavaScript
Latest commit d5d418d Feb 7, 2018

README.md

feathers-localstorage

Greenkeeper badge

Build Status Dependency Status Download Status

feathers-localstorage is a database service adapter that extends feathers-memory and stores data in localStorage in the browser or AsyncStorage in React Native.

$ npm install --save feathers-localstorage

Important: feathers-localstorage implements the Feathers Common database adapter API and querying syntax.

API

service(options)

Returns a new service instance initialized with the given options.

const service = require('feathers-localstorage');

app.use('/messages', service({
  storage: window.localStorage || AsyncStorage
}));
app.use('/messages', service({ storage, id, startId, name, store, paginate }));

Options:

  • storage (required) - The local storage engine. You can pass in the browsers window.localStorage, React Native's AsyncStorage or a NodeJS localstorage module.
  • id (optional, default: 'id') - The name of the id field property.
  • startId (optional, default: 0) - An id number to start with that will be incremented for new record.
  • name (optional, default: 'feathers') - The key to store data under in local or async storage.
  • store (optional) - An object with id to item assignments to pre-initialize the data store
  • events (optional) - A list of custom service events sent by this service
  • paginate (optional) - A pagination object containing a default and max page size

Example

See the clients chapter for more information about using Feathers in the browser and React Native.

Browser

<script type="text/javascript" src="socket.io/socket.io.js"></script>
<script type="text/javascript" src="//unpkg.com/@feathersjs/client@^3.0.0/dist/feathers.js"></script>
<script type="text/javascript" src="//unpkg.com/feathers-localstorage@^2.0.0/dist/localstorage.js"></script>
<script type="text/javascript">
  var service = feathers.localstorage({
    storage: window.localStorage
  });
  var app = feathers().use('/messages', service);

  var messages = app.service('messages');

  messages.on('created', function(message) {
    console.log('Someone created a message', message);
  });

  messages.create({
    text: 'Message created in browser'
  });
</script>

React Native

$ npm install @feathersjs/feathers feathers-localstorage --save
import React from 'react-native';
import feathers from '@feathersjs/feathers';
import localstorage from 'feathers-localstorage';

const { AsyncStorage } = React;

const app = feathers()
  .use('/messages', localstorage({ storage: AsyncStorage }));

const messages = app.service('messages');

messages.on('created', function(message) {
  console.log('Someone created a message', message);
});

messages.create({
  text: 'Message from React Native'
});

License

Copyright (c) 2017

Licensed under the MIT license.