import type { GlobalAPI } from 'types/global-api' import { toArray, isFunction } from '../util/index' export function initUse(Vue: GlobalAPI) { Vue.use = function (plugin: Function | any) { const installedPlugins = this._installedPlugins || (this._installedPlugins = []) if (installedPlugins.indexOf(plugin) > -1) { return this } // additional parameters const args = toArray(arguments, 1) args.unshift(this) if (isFunction(plugin.install)) { plugin.install.apply(plugin, args) } else if (isFunction(plugin)) { plugin.apply(null, args) } installedPlugins.push(plugin) return this } }