UNPKG

rsbuild-plugin-dts

Version:

Rsbuild plugin that supports emitting declaration files for TypeScript.

43 lines (42 loc) 2.7 kB
import * as __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__ from "node:path"; import * as __WEBPACK_EXTERNAL_MODULE__microsoft_api_extractor_99b102c2__ from "@microsoft/api-extractor"; import * as __WEBPACK_EXTERNAL_MODULE__rsbuild_core_1b356efc__ from "@rsbuild/core"; import * as __WEBPACK_EXTERNAL_MODULE_picocolors__ from "picocolors"; import * as __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__ from "./utils.js"; async function bundleDts(options) { const { name, cwd, distPath, dtsExtension, banner, footer, dtsEntry, tsconfigPath = 'tsconfig.json', bundledPackages = [] } = options; try { await Promise.all(dtsEntry.map(async (entry)=>{ const start = Date.now(); const untrimmedFilePath = (0, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__.join)(cwd, (0, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__.relative)(cwd, distPath), `${entry.name}${dtsExtension}`); const mainEntryPointFilePath = entry.path.replace(/\?.*$/, ''); const internalConfig = { mainEntryPointFilePath, bundledPackages, dtsRollup: { enabled: true, untrimmedFilePath }, compiler: { tsconfigFilePath: tsconfigPath }, projectFolder: cwd }; const extractorConfig = __WEBPACK_EXTERNAL_MODULE__microsoft_api_extractor_99b102c2__.ExtractorConfig.prepare({ configObject: internalConfig, configObjectFullPath: void 0, packageJsonFullPath: (0, __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__.join)(cwd, 'package.json') }); const extractorResult = __WEBPACK_EXTERNAL_MODULE__microsoft_api_extractor_99b102c2__.Extractor.invoke(extractorConfig, { localBuild: true }); if (!extractorResult.succeeded) throw new Error(`API Extractor error. ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`(${name})`)}`); await (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.addBannerAndFooter)(untrimmedFilePath, banner, footer); __WEBPACK_EXTERNAL_MODULE__rsbuild_core_1b356efc__.logger.info(`API Extractor bundle DTS succeeded: ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].cyan(untrimmedFilePath)} in ${(0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.getTimeCost)(start)} ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`(${name})`)}`); })); } catch (e) { __WEBPACK_EXTERNAL_MODULE__rsbuild_core_1b356efc__.logger.error('API Extractor Error'); throw new Error(`${e}`); } } export { bundleDts };