⚡️ A blazing-fast tool for generating isolated declarations.
.d.ts
files significantly faster than tsc
.# npm npm i -D unplugin-isolated-decl # jsr npx jsr add -D @unplugin/isolated-decl
// vite.config.ts import UnpluginIsolatedDecl from 'unplugin-isolated-decl/vite' export default defineConfig({ plugins: [UnpluginIsolatedDecl()], })
// rollup.config.js import UnpluginIsolatedDecl from 'unplugin-isolated-decl/rollup' export default { plugins: [UnpluginIsolatedDecl()], }
// rolldown.config.js import UnpluginIsolatedDecl from 'unplugin-isolated-decl/rolldown' export default { plugins: [UnpluginIsolatedDecl()], }
// esbuild.config.js import { build } from 'esbuild' build({ plugins: [require('unplugin-isolated-decl/esbuild')()], })
// farm.config.ts import UnpluginIsolatedDecl from 'unplugin-isolated-decl/farm' export default defineConfig({ plugins: [UnpluginIsolatedDecl()], })
export interface Options { include?: FilterPattern exclude?: FilterPattern enforce?: 'pre' | 'post' | undefined /** * You need to install one of the supported transformers yourself. * oxc: @oxc/transformer * swc: @swc/core * typescript: typescript * * @default typescript */ transformer?: 'oxc' | 'swc' | 'typescript' /** * Whether to generate declaration source maps. * * Supported by `typescript` and `oxc` transformer only. * * @link https://www.typescriptlang.org/tsconfig/#declarationMap */ sourceMap?: boolean /** Only for typescript transformer */ transformOptions?: TranspileOptions ignoreErrors?: boolean /** An extra directory layer for output files. */ extraOutdir?: string rewriteImports?: ( id: string, importer: string, ) => string | void | null | undefined }
rewriteImports
Rewrite imports in .d.ts
files. (esbuild support is not available)
Here is an example of rewriting imports on Rollup:
// rollup.config.js import alias from '@rollup/plugin-alias' export default { // ... plugins: [ alias({ entries: [{ find: '~', replacement: '.' }] }), UnpluginIsolatedDecl({ rewriteImports(id, importer) { if (id[0] === '~') return `.${id.slice(1)}` }, }), // ... ], }
patchCjsDefaultExport
Patch export default
in .d.cts
to export =
For the exhaustive set of options check options