UNPKG

vue-async-everything

Version:

Vue Component Plugin for asynchronous data and computed properties.

33 lines (24 loc) 1.06 kB
import AsyncDataMixinBuilder from './async-data.js' import AsyncComputedMixinBuilder from './async-computed.js' import { globalDefaults, dataDefaults, computedDefaults } from './defaults.js' export let asyncPropertiesOptions = null const AsyncPropertiesPlugin = { install(Vue, options = {}) { const AsyncDataMixin = AsyncDataMixinBuilder(options) const AsyncComputedMixin = AsyncComputedMixinBuilder(options) const strategy = Vue.config.optionMergeStrategies.computed Vue.config.optionMergeStrategies.asyncData = strategy Vue.config.optionMergeStrategies.asyncComputed = strategy Vue.mixin(AsyncDataMixin) Vue.mixin(AsyncComputedMixin) const meta = globalDefaults(options).meta const dataGlobalDefaults = dataDefaults(options) const computedGlobalDefaults = computedDefaults(options) asyncPropertiesOptions = { meta, dataGlobalDefaults, computedGlobalDefaults } } } export default AsyncPropertiesPlugin if (typeof window !== 'undefined' && window.Vue) { // Auto install in dist mode window.Vue.use(AsyncPropertiesPlugin) }