JSPM

  • Created
  • Published
  • Downloads 5891
  • Score
    100M100P100Q149413F
  • License MIT

A blazing-fast tool for generating isolated declarations.

Package Exports

    Readme

    unplugin-isolated-decl npm jsr

    Unit Test

    ⚑️ A blazing-fast tool for generating isolated declarations.

    Features

    • πŸš€ Fast: Generates .d.ts files significantly faster than tsc.
    • 🎨 Transformer: Support Oxc, SWC, and TypeScript transformer.
    • πŸ“¦ Zero Config: No configuration required, works out of the box.
    • ✨ Bundler Support: Works with Vite, Rollup, esbuild and Farm. (PR of Webpack/Rspack support is welcome)

    Installation

    # npm
    npm i -D unplugin-isolated-decl
    
    # jsr
    npx jsr add -D @unplugin/isolated-decl

    Usage

    Vite
    // vite.config.ts
    import UnpluginIsolatedDecl from 'unplugin-isolated-decl/vite'
    
    export default defineConfig({
      plugins: [UnpluginIsolatedDecl()],
    })


    Rollup
    // rollup.config.js
    import UnpluginIsolatedDecl from 'unplugin-isolated-decl/rollup'
    
    export default {
      plugins: [UnpluginIsolatedDecl()],
    }


    Rolldown
    // rolldown.config.js
    import UnpluginIsolatedDecl from 'unplugin-isolated-decl/rolldown'
    
    export default {
      plugins: [UnpluginIsolatedDecl()],
    }


    esbuild
    // esbuild.config.js
    import { build } from 'esbuild'
    
    build({
      plugins: [require('unplugin-isolated-decl/esbuild')()],
    })


    Farm
    // farm.config.ts
    import UnpluginIsolatedDecl from 'unplugin-isolated-decl/farm'
    
    export default defineConfig({
      plugins: [UnpluginIsolatedDecl()],
    })


    Options

    export interface Options {
      include?: FilterPattern
      exclude?: FilterPattern
      enforce?: 'pre' | 'post' | undefined
      /**
       * You should install the transformer manually if you are not using oxc.
       * swc: @swc/core
       * typescript: typescript
       *
       * @default oxc
       */
      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 =


    [!NOTE] For the exhaustive set of options check options

    Sponsors

    License

    MIT License Β© 2024-PRESENT 三咲智子