github.com/feathersjs-ecosystem/feathers-localstorage

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/feathersjs-ecosystem/feathers-localstorage

v5.2.1+incompatible
Version published
Created

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. Data is only written if changed since last write.
  • 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.

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.

FAQs

Package last updated on 20 May 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts