cheetah-framework
Version:
Cheetah Framework JS used in all our applications
28 lines (22 loc) • 876 B
JavaScript
/**
* Auto discovery of every store module (CheetahStore and custom store)
*/
import Vue from 'vue'
import store from '@cheetah/store/index'
import CheetahStore from '@cheetah/store/CheetahStore'
Vue.prototype.$dependencies = function (viewModel, dependencies) {
if (typeof dependencies === 'string') {
dependencies = [dependencies]
}
dependencies.forEach(dependency => CheetahStore.load(dependency, viewModel))
}
function preloadModules (r) {
r.keys().forEach(filePath => new CheetahStore(r(filePath)))
}
// framework modules
preloadModules(require.context('@cheetah', true, /storeModules\/.*\.js$/))
// app modules (Cheetah Commerce / Cheetah Reach)
preloadModules(require.context('@@/cheetahModules', true, /storeModules\/.*\.js$/))
// app project modules
preloadModules(require.context('@@/modules', true, /storeModules\/.*\.js$/))
export default store