@ishitatsuyuki/oruga-next
Version:
UI components for Vue.js and CSS framework agnostic
24 lines (17 loc) • 883 B
text/typescript
import { App, DefineComponent, Plugin } from 'vue'
import { useProgrammatic } from './useProgrammatic'
export const registerPlugin = (app: App, plugin: Plugin) => {
app.use(plugin)
}
export const registerComponent = (app: App, component: DefineComponent) => {
app.component(component.name, component)
}
export const registerComponentProgrammatic = (app: App, property: string, component: any) => {
// use composable for unified access to programmatic oruga object
const { oruga, addProgrammatic } = useProgrammatic();
// add component (manipulates the programmatic oruga object)
addProgrammatic(property, component);
// add provide and $oruga (only needed once)
if (!(app._context.provides && app._context.provides.oruga)) app.provide('oruga', oruga);
if (!app.config.globalProperties.$oruga) app.config.globalProperties.$oruga = oruga;
}