{"version":3,"file":"with-install.mjs","sources":["../../../../packages/utils/with-install.ts"],"sourcesContent":["import { NOOP } from '@vue/shared'\nimport type { SFCWithInstall } from './types'\n\nexport const withInstall = <T, E extends Record<string, any>>(\n  main: T,\n  extra?: E\n) => {\n  ;(main as SFCWithInstall<T>).install = (app): void => {\n    for (const comp of [main, ...Object.values(extra ?? {})]) {\n      app.component(comp.name, comp)\n    }\n  }\n\n  if (extra) {\n    for (const [key, comp] of Object.entries(extra)) {\n      ;(main as any)[key] = comp\n    }\n  }\n  return main as SFCWithInstall<T> & E\n}\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n  ;(fn as SFCWithInstall<T>).install = (app) => {\n    app.config.globalProperties[name] = fn\n  }\n\n  return fn as SFCWithInstall<T>\n}\n\nexport const withNoopInstall = <T>(component: T) => {\n  ;(component as SFCWithInstall<T>).install = NOOP\n\n  return component as SFCWithInstall<T>\n}\n"],"names":[],"mappings":";;MAGa,cAAc,CACzB,MACA,UACG;AACH;AAAC,EAAC,KAA2B,UAAU,CAAC,QAAc;AACpD,eAAW,QAAQ,CAAC,MAAM,GAAG,OAAO,OAAO,wBAAS,MAAM;AACxD,UAAI,UAAU,KAAK,MAAM;AAAA;AAAA;AAI7B,MAAI,OAAO;AACT,eAAW,CAAC,KAAK,SAAS,OAAO,QAAQ,QAAQ;AAC/C;AAAC,MAAC,KAAa,OAAO;AAAA;AAAA;AAG1B,SAAO;AAAA;MAGI,sBAAsB,CAAI,IAAO,SAAiB;AAC7D;AAAC,EAAC,GAAyB,UAAU,CAAC,QAAQ;AAC5C,QAAI,OAAO,iBAAiB,QAAQ;AAAA;AAGtC,SAAO;AAAA;MAGI,kBAAkB,CAAI,cAAiB;AAClD;AAAC,EAAC,UAAgC,UAAU;AAE5C,SAAO;AAAA;;;;"}