ember-collector-dispatcher
v3.0.0
Published
Collect and dispatch
Downloads
10
Readme
ember-collector-dispatcher
Information
Collect and dispatch elements in your progressive web app.
Installation
ember install ember-collector-dispatcher
Configuring your collector
You need to extend the collector service:
// app/services/my-collector.js
export default Collector.extend({
adapters: [
['indexed-db', { database: 'logs' }],
['local-storage', { key: 'logs' }],
'memory'
]
});
You also need to define adapters
with the possible storages. Now, you can choose: indexeddb, local-storage and memory.
You can add as many adapters as you want. Only must implements the following methods:
| Method | Description |
|:-------------:|:-----------------------------------------------------------------------------------------:|
| isSupported
| Returns true
if the storage is supported; otherwise, false
. |
| count
| Returns the number of elements in the storage. |
| push
| Adds one or more elements to the end of the storage. |
| unshift
| Adds one or more elements to the beginning of the storage. |
| pop
| Removes one or more elements from the end of the storage and returns that elements. |
| shift
| Removes one or more elements from the beginning of the storage and returns that elements. |
Configuring your dispatcher
You need to extend the dispatcher service:
// app/services/my-dispatcher.js
export default Dispatcher.extend({
collector: service('my-collector'),
maxTimeout: 30000,
maxConcurrent: 5,
async dispatch(items) {
// my dispatch logic...
return [undispatchedItems];
}
})
You also need to define the following properties:
| Property | Description |
|:---------------:|:-----------------------------------------------------------------------------------------------------------------------:|
| collector
| Collector service injection. |
| maxTimeout
| Max time, in milliseconds (thousandths of a second), the dispatcher should wait before the dispatch method is executed. |
| maxConcurrent
| Max number of items that the dispatcher can be process during the loop. |
| dispatch
| Dispatch items as you want |
Contribute
If you want to contribute to this addon, please read the CONTRIBUTING.md.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
See the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE.md file for details