UNPKG

@hperchec/scorpion-ui-template-default

Version:
104 lines (90 loc) 2.71 kB
/** * Packages */ // vue-awesome import Icon from 'vue-awesome/components/Icon' import 'vue-awesome/icons/brands/discord' import 'vue-awesome/icons/brands/facebook' import 'vue-awesome/icons/brands/twitter' import 'vue-awesome/icons/envelope' import 'vue-awesome/icons/external-link-alt' import 'vue-awesome/icons/sort-up' import 'vue-awesome/icons/sort-down' // tailwindcss import 'tailwindcss/base.css' import 'tailwindcss/components.css' import 'tailwindcss/utilities.css' import 'animate-sass/_animate.scss' // scorpion-ui import { utils } from '@hperchec/scorpion-ui' /** * Template */ import config from './config/config' import components from './components' import directives from './directives' import i18n from './i18n' import models from './models' import plugins from './plugins' import router from './router' import store from './store' import rootInstance from './root-instance' // Styles import './style/index.scss' const mergeContext = (obj, key, value) => { obj[key] = utils.deepMerge(obj[key], value) } /** * Template */ export default function (Core) { /* eslint-disable dot-notation */ // Vue const Vue = Core.Vue // eslint-disable-line no-unused-vars /** * Custom config keys */ Core.configure(config) /** * Contextualize models */ Core.context.models.User = models.User /** * i18n */ mergeContext(Core.context.services['i18n'], 'messages', i18n.messages) /** * Router */ mergeContext(Core.context.services['router'], 'routes', router.routes) mergeContext(Core.context.services['router'], 'middlewares', router.middlewares) /** * Store */ mergeContext(Core.context.services['store'], 'modules', store.modules) mergeContext(Core.context.services['store'], 'plugins', store.plugins) /** * Vue */ // Expose plugins options to make customizing possible Core.registerVuePlugin('VueTailwind', plugins.VueTailwind.plugin, plugins.VueTailwind.options) // Directives mergeContext(Core.context.vue, 'directives', directives) // Components mergeContext(Core.context.vue, 'components', components) // Define vue root instance prototype in '$app' namespace mergeContext(Core.context.vue.rootInstance.prototype, 'app', rootInstance.prototype.app) // Extend root-instance options mergeContext(Core.context.vue.rootInstance, 'options', rootInstance.options) /** * Extend boot */ Core.onAppBoot(async () => { // Check if user is authenticated await Core.service('store').dispatch('Auth/check') }) /** * Global Vue components */ Vue.component('v-icon', Icon) }