{"version":3,"file":"withInstall.mjs","sources":["../../../src/utils/withInstall.ts"],"sourcesContent":["import type { App } from 'vue';\nimport type { AppContext, Plugin } from 'vue';\n\nexport type SFCWithInstall<T> = T & Plugin\n\nexport type SFCInstallWithContext<T> = SFCWithInstall<T> & {\n  _context: AppContext | null\n}\n\nexport const withInstall = <T, E extends Record<string, any>>(\n  main: T,\n  extra?: E\n) => {\n  (main as SFCWithInstall<T>).install = (app: App): void => {\n    for (const comp of [main, ...Object.values(extra ?? {})]) {\n      app.component(comp.name, comp);\n    }\n  };\n\n  return main as SFCWithInstall<T> & E;\n};"],"names":[],"mappings":"AASa,MAAA,cAAc,CACzB,MACA,UACG;AACF,OAA2B,UAAU,CAAC,QAAmB;AAC7C,eAAA,QAAQ,CAAC,MAAM,GAAG,OAAO,OAAgB,CAAE,CAAA,CAAC,GAAG;AACpD,UAAA,UAAU,KAAK,MAAM,IAAI;AAAA,IAAA;AAAA,EAEjC;AAEO,SAAA;AACT;"}