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.
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.See the clients chapter for more information about using Feathers in the browser and React Native.
<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>
$ 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'
});
Copyright (c) 2017
Licensed under the MIT license.