| Total Complexity | 3 |
| Complexity/F | 3 |
| Lines of Code | 50 |
| Function Count | 1 |
| Duplicated Lines | 0 |
| Ratio | 0 % |
| Coverage | 100% |
| Changes | 3 | ||
| Bugs | 0 | Features | 0 |
| 1 | import filter from 'feathers-query-filters' |
||
| 2 | import {matcher} from 'feathers-commons/lib/utils' |
||
| 3 | |||
| 4 | import aliasesMixinMaker from './aliases' |
||
| 5 | import Syncer from './syncer' |
||
| 6 | import syncerMixin from './mixin' |
||
| 7 | |||
| 8 | 8 | const defaults = { |
|
| 9 | aliases: false, |
||
| 10 | driver: Syncer, |
||
| 11 | filter, |
||
| 12 | idField: 'id', |
||
| 13 | matcher |
||
| 14 | } |
||
| 15 | |||
| 16 | export default { |
||
| 17 | /** |
||
| 18 | * Install to vue |
||
| 19 | * |
||
| 20 | * @function |
||
| 21 | * @param {Vue} Vue - Vue |
||
| 22 | * @param {Object} options - Options |
||
| 23 | * @param {Function} [options.aliases] - Aliases to enable |
||
| 24 | * @param {Function} [options.driver] - Custom driver to use |
||
| 25 | * @param {Function} [options.filter] - Query filter parser |
||
| 26 | * @param {Object} [options.feathers] - Feathers client |
||
| 27 | * @param {string} [options.idField] - Default ID field |
||
| 28 | * @param {Function} [options.matcher] - Matcher creator |
||
| 29 | */ |
||
| 30 | install: function (Vue, options = {}) { |
||
| 31 | 36 | const extend = Vue.util.extend |
|
| 32 | // Vue 2.0 has util.toObject, but 1.0 doesn't |
||
| 33 | 36 | options = extend(extend({}, defaults), options) |
|
| 34 | |||
| 35 | 36 | if (!('feathers' in options)) { |
|
| 36 | 1 | throw new Error('No feathers instance set in options') |
|
| 37 | } |
||
| 38 | |||
| 39 | 35 | Vue.$syncer = options |
|
| 40 | 35 | Vue.prototype.$feathers = options.feathers |
|
| 41 | |||
| 42 | 35 | Vue.mixin(syncerMixin(Vue)) |
|
| 43 | // Mixin handling |
||
| 44 | 35 | Vue.config.optionMergeStrategies.sync = Vue.config.optionMergeStrategies.props |
|
| 45 | |||
| 46 | 35 | if (options.aliases) { |
|
| 47 | 1 | Vue.mixin(aliasesMixinMaker(options.aliases)) |
|
| 48 | } |
||
| 49 | } |
||
| 50 | } |
||
| 51 |