Skip to content

A client side service based on feathers-memory that persists to LocalStorage

License

Notifications You must be signed in to change notification settings

DaddyWarbucks/feathers-localstorage

 
 

Repository files navigation

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.
  • throttle (optional, default 200) - The minimum time (ms) before in-memory data is written to storage.
  • 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.
  • whitelist (optional) - A list of additional query parameters to allow.
  • multi (optional) - Allow create with arrays and update and remove with id null to change multiple items. Can be true for all methods or an array of allowed methods (e.g. [ 'remove', 'create' ]).
  • reuseKeys (optional, default: false) Allow duplicate keys i.e. last definition wins. Mostly useful for demonstration and testing purposes.
  • strictStorage (optional, default false) - When false, all storage data is held in memory after initialization. When true, the storage data is get/set on each method.

Example

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

Browser

<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.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.

About

A client side service based on feathers-memory that persists to LocalStorage

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 97.5%
  • TypeScript 2.5%