@varlet/cli
Version:
cli of varlet
21 lines (14 loc) • 604 B
text/typescript
import type { App, Component, Plugin } from 'vue'
import { createNamespaceFn } from '@varlet/shared'
export type ComponentWithInstall<T> = T & Plugin
export function withInstall<T = Component>(component: Component, target?: T): ComponentWithInstall<T> {
const componentWithInstall = target ?? component
;(componentWithInstall as ComponentWithInstall<T>).install = function (app: App) {
const { name } = component
if (name) {
app.component(name, component)
}
}
return componentWithInstall as ComponentWithInstall<T>
}
export const createNamespace = createNamespaceFn('va')