import type { App, Plugin } from 'vue'; import type { DeepPartialConfig } from '@/defaultConfig'; import { unref } from 'vue'; import { useProvideConfig, useThemes } from '@/hooks'; import { deepMerge } from '@/utils'; function create({ components, themes }: { components?: any[] | Record; themes?: Record }) { return (app: App, config: DeepPartialConfig) => { const _config = unref(useProvideConfig(deepMerge({ themes }, config), app, true)); useThemes(_config.themes, app); if (components) { (Array.isArray(components) ? components : Object.values(components)).forEach((compoent) => { app.use(compoent as Plugin, _config); }); } }; } export default create;