diff --git a/README.md b/README.md index 062c096..0de9429 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ This is an existing [TypeScript issue](https://github.com/microsoft/TypeScript/i ```ts import type ts from 'typescript' -import type { IExtractorConfigPrepareOptions } from '@microsoft/api-extractor' +import type { IExtractorConfigPrepareOptions, IExtractorInvokeOptions } from '@microsoft/api-extractor' import type { LogLevel } from 'vite' type MaybePromise = T | Promise @@ -278,6 +278,14 @@ export interface PluginOptions { */ rollupConfig?: RollupConfig, + /** + * Override the invoke options of `@microsoft/api-extractor` + * + * @default null + * @see https://api-extractor.com/pages/setup/invoking/#invoking-from-a-build-script + */ + rollupOptions?: IExtractorInvokeOptions, + /** * Whether to copy .d.ts source files to `outDir` * diff --git a/README.zh-CN.md b/README.zh-CN.md index c9a952c..d5a0374 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -90,7 +90,7 @@ export default defineConfig({ ```ts import type ts from 'typescript' -import type { IExtractorConfigPrepareOptions } from '@microsoft/api-extractor' +import type { IExtractorConfigPrepareOptions, IExtractorInvokeOptions } from '@microsoft/api-extractor' import type { LogLevel } from 'vite' type MaybePromise = T | Promise @@ -278,6 +278,14 @@ export interface PluginOptions { */ rollupConfig?: RollupConfig, + /** + * 覆写 `@microsoft/api-extractor` 的调用选项 + * + * @default null + * @see https://api-extractor.com/pages/setup/invoking/#invoking-from-a-build-script + */ + rollupOptions?: IExtractorInvokeOptions, + /** * 是否将源码里的 .d.ts 文件复制到 `outDir` * diff --git a/src/plugin.ts b/src/plugin.ts index d486718..4ab8528 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -76,6 +76,7 @@ export function dtsPlugin(options: PluginOptions = {}): import('vite').Plugin { rollupTypes = false, pathsToAliases = true, aliasesExclude = [], + rollupOptions = {}, copyDtsFiles = false, declarationOnly = false, strictOutput = true, @@ -625,7 +626,8 @@ export function dtsPlugin(options: PluginOptions = {}): import('vite').Plugin { entryPath: path, fileName: basename(path), libFolder, - rollupConfig + rollupConfig, + rollupOptions }) emittedFiles.delete(path) @@ -640,7 +642,8 @@ export function dtsPlugin(options: PluginOptions = {}): import('vite').Plugin { entryPath: typesPath, fileName: basename(typesPath), libFolder, - rollupConfig + rollupConfig, + rollupOptions }) emittedFiles.delete(typesPath) diff --git a/src/rollup.ts b/src/rollup.ts index 2966ab5..a7cbdc2 100644 --- a/src/rollup.ts +++ b/src/rollup.ts @@ -4,7 +4,7 @@ import { Extractor, ExtractorConfig } from '@microsoft/api-extractor' import { tryGetPkgPath } from './utils' import type ts from 'typescript' -import type { ExtractorLogLevel } from '@microsoft/api-extractor' +import type { ExtractorLogLevel, IExtractorInvokeOptions } from '@microsoft/api-extractor' import type { RollupConfig } from './types' export interface BundleOptions { @@ -15,7 +15,8 @@ export interface BundleOptions { entryPath: string, fileName: string, libFolder?: string, - rollupConfig?: RollupConfig + rollupConfig?: RollupConfig, + rollupOptions?: IExtractorInvokeOptions } const dtsRE = /\.d\.tsx?$/ @@ -28,7 +29,8 @@ export function rollupDeclarationFiles({ entryPath, fileName, libFolder, - rollupConfig = {} + rollupConfig = {}, + rollupOptions = {} }: BundleOptions) { const configObjectFullPath = resolve(root, 'api-extractor.json') @@ -87,7 +89,8 @@ export function rollupDeclarationFiles({ localBuild: false, showVerboseMessages: false, showDiagnostics: false, - typescriptCompilerFolder: libFolder ? resolve(libFolder) : undefined + typescriptCompilerFolder: libFolder ? resolve(libFolder) : undefined, + ...rollupOptions }) return result.succeeded diff --git a/src/types.ts b/src/types.ts index 8b30b82..bb135fa 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,5 +1,8 @@ import type ts from 'typescript' -import type { IExtractorConfigPrepareOptions } from '@microsoft/api-extractor' +import type { + IExtractorConfigPrepareOptions, + IExtractorInvokeOptions +} from '@microsoft/api-extractor' import type { LogLevel } from 'vite' type MaybePromise = T | Promise @@ -184,6 +187,14 @@ export interface PluginOptions { */ rollupConfig?: RollupConfig, + /** + * Override the invoke options of `@microsoft/api-extractor` + * + * @default null + * @see https://api-extractor.com/pages/setup/invoking/#invoking-from-a-build-script + */ + rollupOptions?: IExtractorInvokeOptions, + /** * Whether to copy .d.ts source files to `outDir` *