mirror of
https://github.com/namibia/awesome-cheatsheets.git
synced 2024-11-16 10:05:23 +00:00
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
/**************************************************************************
|
|
* IMPORTS
|
|
***************************************************************************/
|
|
|
|
// NPM
|
|
import Vue from "vue";
|
|
import upperFirst from "lodash/upperFirst";
|
|
import camelCase from "lodash/camelCase";
|
|
|
|
/**************************************************************************
|
|
* GLOBAL COMPONENTS
|
|
* https://vuejs.org/v2/guide/components.html#Global-Registration
|
|
***************************************************************************/
|
|
|
|
const requireComponent = require.context(
|
|
// The relative path of the components folder
|
|
// NOTE: try with ../components/base
|
|
"../components",
|
|
// Whether or not to look in subfolders
|
|
false,
|
|
// The regular expression used to match base component filenames
|
|
/Base[A-Z]\w+\.(vue|js)$/
|
|
);
|
|
|
|
requireComponent.keys().forEach(fileName => {
|
|
// Get component config
|
|
const componentConfig = requireComponent(fileName);
|
|
|
|
// Get PascalCase name of component
|
|
const componentName = upperFirst(
|
|
camelCase(
|
|
// Strip the leading `./` and extension from the filename
|
|
fileName.replace(/^\.\/(.*)\.\w+$/, "$1")
|
|
)
|
|
);
|
|
|
|
// Register component globally
|
|
Vue.component(
|
|
componentName,
|
|
// Look for the component options on `.default`, which will
|
|
// exist if the component was exported with `export default`,
|
|
// otherwise fall back to module's root.
|
|
componentConfig.default || componentConfig
|
|
);
|
|
});
|