Welcome to Wings-Feathers!
A FeathersJS 4-Way reactive data sync for any frontend framework
- DOM / UI (HTML)
- Data / State (Javascript)
- Local Storage (Offline)
- Backend/Database (Cloud)
Join and support our Community
Web and Mobile Developers PH
[ Facebook Page | Group ]
Installation
npm install wings-feathers
or
yarn add wings-feathers
Usage
// const wings = require('wings-feathers').default let app = let messagesSrvc = app messagesSrvc messagesSrvc
app.wingsService(serviceName, params, config)
Returns a wingsService <object>
Param | Type | Description |
---|---|---|
serviceName | <string> |
Name of service |
params.query | <object> |
( Optional ) Refer to Feathers Querying |
config | <object> |
( Optional ) Configuration of wingsService <object> |
config.channels | <array> |
( Optional ) Array of channel objects |
<object>
params.query Refer to Feathers Querying
/* example records [ { text: 'Hello', read: true, roomId: 1, nested: { prop: 'xander' } }, { text: 'World', read: false, roomId: 2, nested: { prop: 'ford' } } ]*/ let serviceName = 'message' let params = query: read: false roomId: 2 let messagesSrvc = app messagesSrvc
<object>
config Property | Type | Default | Description |
---|---|---|---|
debug | <boolean> |
false | Logs all events init , created , removed , patched , updated , loadMore , reset |
newDataPosition | <string> |
'end' | Add new items to the start or end of an array |
paginate | <boolean> |
false | Enable pagination based on $limit . **default is 10 records per page |
channels | <array> |
[] | Refer to channels |
let config = debug: true newDataPosition: 'start' paginate: true channels: let messagesSrvc = app
<array>
and channel <object>
config.channels Channels determine which records to receive that passes the prop === value .
Property | Type | Description |
---|---|---|
prop | <string> |
Name of record's property |
value | <string | number | boolean | function> |
Equality test value |
value | <function> |
callback accepts (val, message) arguments for custom test. **Must return a boolean value |
/* example records [ { text: 'Hello', read: true, roomId: 1, nested: { prop: 'xander' } }, { text: 'World', read: false, roomId: 2, nested: { prop: 'ford' } } ]*/ let config = channels: prop: 'roomId' value: 2 prop: 'nested.prop' value: 'ford' prop: 'nested' valprop === 'ford' let messagesSrvc = app
You may use dot notation in prop as reference into the object's property
reset(params, config)
set new params
, config
and triggers init
method
let params = query: read: false roomId: 2 let config = debug: true newDataPosition: 'start' paginate: true channels: messagesSrvc
loadMore()
loads more data based on $skip
= ( page
+ 1 ) * $limit
messagesSrvc
loadAll()
loads all data based on ($skip
= page
* $limit
) * pages
messagesSrvc
loadPage(page)
loads the based on $skip
= page
* $limit
messagesSrvc
destroy()
destroys all listners created by .on(eventName, listener)
function
messagesSrvc