Awesome
feathers-localstorage
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:
storage
(required) - The local storage engine. You can pass in the browserswindow.localStorage
, React Native'sAsyncStorage
or a NodeJS localstorage module.throttle
(optional, default200
) - The minimum time (ms) before in-memory data is written tostorage
. 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 adefault
andmax
page size.whitelist
(optional) - A list of additional query parameters to allow.multi
(optional) - Allowcreate
with arrays andupdate
andremove
withid
null
to change multiple items. Can betrue
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.