Skip to content

Latest commit

 

History

History
94 lines (66 loc) · 3.38 KB

localstorage.md

File metadata and controls

94 lines (66 loc) · 3.38 KB

LocalStorage and AsyncStorage

GitHub stars npm version Changelog

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: To use this adapter you also want to be familiar with the database adapter common API and querying mechanism.

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
  • 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/feathers-client@^2.0.0/dist/feathers.js"></script>
<script type="text/javascript" src="//unpkg.com/feathers-localstorage@^1.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 feathers feathers-localstorage --save
import React from 'react-native';
import localstorage from 'feathers-localstorage';
import feathers from 'feathers';

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'
});