{"version":3,"file":"resolver.mjs","sources":["../src/resolver.ts"],"sourcesContent":["import type { ComponentResolver, SideEffectsInfo } from 'unplugin-vue-components/types';\r\nimport { kebabCase } from 'unplugin-vue-components';\r\n\r\nexport interface TkComponentResolverOptions {\r\n  exclude?: string[];\r\n  /**\r\n   * import style css or scss along with components\r\n   *\r\n   * @default true\r\n   */\r\n  importStyle?: boolean | 'css' | 'less';\r\n  /**\r\n   * @deprecated use `importStyle: 'css'` instead\r\n   */\r\n  importCss?: boolean;\r\n  /**\r\n   * @deprecated use `importStyle: 'less'` instead\r\n   */\r\n  importLess?: boolean;\r\n\r\n  /**\r\n   * use commonjs build default false\r\n   */\r\n  cjs?: boolean;\r\n  /**\r\n   * rename package\r\n   *\r\n   * @default 'ant-design-vue'\r\n   */\r\n  packageName?: string;\r\n}\r\n\r\nfunction getSideEffects(compName: string, options: TkComponentResolverOptions): SideEffectsInfo {\r\n  const { importStyle = true, importLess = false } = options;\r\n\r\n  if (!importStyle) return;\r\n  const lib = options.cjs ? 'lib' : 'es';\r\n  const packageName = options?.packageName || '@talkwed/component-ui';\r\n\r\n  if (importStyle === 'less' || importLess) {\r\n    const styleDir = kebabCase(compName);\r\n    return `${packageName}/${lib}/components/${styleDir}/style/index.less`;\r\n  } else {\r\n    const styleDir = kebabCase(compName);\r\n    return `${packageName}/${lib}/components/${styleDir}/style/index.css`;\r\n  }\r\n}\r\n\r\n/**\r\n * Resolver for Vlib\r\n *\r\n * @link https://github.com/aheadcn/talkwed\r\n */\r\nexport function TkComponentResolver(options: TkComponentResolverOptions = {}): ComponentResolver {\r\n  return {\r\n    type: 'component',\r\n    resolve: (name: string) => {\r\n      /**\r\n       * 加载前会扫描所有导出组件存入缓存，\r\n       */\r\n      // console.log('Component ==>' + name);\r\n\r\n      if (!options?.exclude?.includes(name) && name.startsWith('Tkc')) {\r\n        // const index = name.indexOf('Tkc');\r\n        const importName = name.substring(3);\r\n        console.log('importName:' + importName);\r\n        const { cjs = false, packageName = '@talkwed/component-ui' } = options;\r\n        const path = `${packageName}/${cjs ? 'lib' : 'es'}`;\r\n        return {\r\n          name: importName,\r\n          from: path,\r\n          sideEffects: getSideEffects(importName, options),\r\n        };\r\n\r\n        // return {\r\n        //   name,\r\n        //   from: `@talkwed/component-ui/${moduleType}`,\r\n        //   sideEffects: getSideEffects(kebabCase(name), options),\r\n        // };\r\n      }\r\n    },\r\n  };\r\n}\r\n"],"names":[],"mappings":";;AAgCA,SAAS,cAAA,CAAe,UAAkB,OAAsD,EAAA;AAC9F,EAAA,MAAM,EAAE,WAAA,GAAc,IAAM,EAAA,UAAA,GAAa,OAAU,GAAA,OAAA,CAAA;AAEnD,EAAA,IAAI,CAAC,WAAA;AAAa,IAAA,OAAA;AAClB,EAAM,MAAA,GAAA,GAAM,OAAQ,CAAA,GAAA,GAAM,KAAQ,GAAA,IAAA,CAAA;AAClC,EAAM,MAAA,WAAA,GAAc,SAAS,WAAe,IAAA,uBAAA,CAAA;AAE5C,EAAI,IAAA,WAAA,KAAgB,UAAU,UAAY,EAAA;AACxC,IAAM,MAAA,QAAA,GAAW,UAAU,QAAQ,CAAA,CAAA;AACnC,IAAO,OAAA,CAAA,EAAG,eAAe,GAAkB,CAAA,YAAA,EAAA,QAAA,CAAA,iBAAA,CAAA,CAAA;AAAA,GACtC,MAAA;AACL,IAAM,MAAA,QAAA,GAAW,UAAU,QAAQ,CAAA,CAAA;AACnC,IAAO,OAAA,CAAA,EAAG,eAAe,GAAkB,CAAA,YAAA,EAAA,QAAA,CAAA,gBAAA,CAAA,CAAA;AAAA,GAC7C;AACF,CAAA;AAOgB,SAAA,mBAAA,CAAoB,OAAsC,GAAA,EAAuB,EAAA;AAC/F,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,WAAA;AAAA,IACN,OAAA,EAAS,CAAC,IAAiB,KAAA;AAMzB,MAAI,IAAA,CAAC,SAAS,OAAS,EAAA,QAAA,CAAS,IAAI,CAAK,IAAA,IAAA,CAAK,UAAW,CAAA,KAAK,CAAG,EAAA;AAE/D,QAAM,MAAA,UAAA,GAAa,IAAK,CAAA,SAAA,CAAU,CAAC,CAAA,CAAA;AACnC,QAAQ,OAAA,CAAA,GAAA,CAAI,gBAAgB,UAAU,CAAA,CAAA;AACtC,QAAA,MAAM,EAAE,GAAA,GAAM,KAAO,EAAA,WAAA,GAAc,yBAA4B,GAAA,OAAA,CAAA;AAC/D,QAAA,MAAM,IAAO,GAAA,CAAA,EAAG,WAAe,CAAA,CAAA,EAAA,GAAA,GAAM,KAAQ,GAAA,IAAA,CAAA,CAAA,CAAA;AAC7C,QAAO,OAAA;AAAA,UACL,IAAM,EAAA,UAAA;AAAA,UACN,IAAM,EAAA,IAAA;AAAA,UACN,WAAA,EAAa,cAAe,CAAA,UAAA,EAAY,OAAO,CAAA;AAAA,SACjD,CAAA;AAAA,OAOF;AAAA,KACF;AAAA,GACF,CAAA;AACF;;;;"}