feathersjs-ecosystem / feathers-localstorage

A client side service based on feathers-memory that persists to LocalStorage
MIT License
38 stars 15 forks source link

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: This branch only works for FeathersJS Dove (v5). Please choose a non-pre release for other versions of FeathersJS.

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:

Example

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

Browser

<script type="text/javascript" src="https://github.com/feathersjs-ecosystem/feathers-localstorage/raw/master//unpkg.com/@feathersjs/client@^3.0.0/dist/feathers.js"></script>
<script type="text/javascript" src="https://github.com/feathersjs-ecosystem/feathers-localstorage/raw/master//unpkg.com/feathers-localstorage@^2.0.2/dist/feathers-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.