{"version":3,"file":"types.mjs","sources":["../../../../packages/utils/types.ts"],"sourcesContent":["import type { App, Plugin, SetupContext, EmitsOptions } from 'vue'\n\n/* 生成install函数 */\n\nexport type SFCWithInstall<T> = T & Plugin\n\nexport type SFCInstallWithContext<T> = SFCWithInstall<T> & {\n\t_context: App | null\n}\n\nexport type EmitFn<E extends EmitsOptions> = SetupContext<E>['emit']\n\nexport const withInstall = <T, E extends Record<string, any>>(main: T, extra?: E) => {\n\t;(main as SFCWithInstall<T>).install = (app: App): void => {\n\t\tfor (const comp of [main, ...Object.values(extra ?? {})]) {\n\t\t\tapp.component(comp.name, comp)\n\t\t}\n\t}\n\n\tif (extra) {\n\t\tfor (const [key, comp] of Object.entries(extra)) {\n\t\t\t;(main as any)[key] = comp\n\t\t}\n\t}\n\treturn main as SFCWithInstall<T> & E\n}\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n\t;(fn as SFCWithInstall<T>).install = (app: App) => {\n\t\t;(fn as SFCInstallWithContext<T>)._context = app\n\t\tapp.config.globalProperties[name] = fn\n\t}\n\n\treturn fn as SFCInstallWithContext<T>\n}\n\nexport function isNumber(value) {\n\treturn typeof value === 'number' && isFinite(value)\n}\n\nexport function isNumeric(value) {\n\treturn !isNaN(parseFloat(value)) && isFinite(value)\n}\n\nexport function isString(obj) {\n\treturn Object.prototype.toString.call(obj) === '[object String]'\n}\n\nexport function isBoolean(value) {\n\treturn typeof value === 'boolean'\n}\n\nexport function isDateObj(value) {\n\treturn Object.prototype.toString.call(value) === '[object Date]'\n}\n\nexport function isObject(obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Object]'\n}\n\nexport function isArray(obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nexport function isHtmlElement(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE\n}\n\nexport const isFunction = functionToCheck => {\n\tconst getType = {}\n\treturn functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'\n}\n\nexport const isUndefined = val => {\n\treturn val === void 0\n}\n\nexport const isDefined = val => {\n\treturn val !== undefined && val !== null\n}\n\nexport function isPromise(val) {\n\treturn isObject(val) && isFunction(val.then) && isFunction(val.catch)\n}\n"],"names":[],"mappings":"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"}