You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

fix-dts-default-cjs-exports

Package Overview
Dependencies
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fix-dts-default-cjs-exports

Utility to fix TypeScript declarations when using default exports in CommonJS.

1.0.1
latest
Source
npmnpm
Version published
Weekly downloads
733K
4.81%
Maintainers
2
Weekly downloads
 
Created
Source

Fix TypeScript Declarations for default CJS exports

npm version npm downloads License

This utility will allow you to fix the TypeScript declaration in CommonJS modules when using default exports.

Check the CJS fixtures in the test folder and the CJS document for further details when using rollup-plugin-dts.

Features

  • 🚀 Fix default exports in CommonJS modules via API or Rollup plugin
  • ✨ Generate CommonJS d.ts and d.cts files from d.mts files
  • 💥 Use it with custom builders like unbuild, tsup or pkgroll (right now only unbuild supported, tsup and pkgroll don't allow adding Rollup plugins)

unbuild

[!NOTE]

unbuild v3.5.0 uses the Rollup plugin from this package to fix the default exports in CommonJS modules.

For older unbuild versions, you can add the Rollup plugin from this package using the rollup:dts:options hook.

[!WARNING]

You should register the plugin directly when enabling rollup.emitCJS = true option, otherwise you can get wrong transformations.

The plugin exposed here is just a helper to fix the default exports in CommonJS modules, it cannot control what files are being generated, check the declaration option in the readme file.

You will need to remove its current internal plugin adding the one provided by this package:

// build.config.ts
import { FixDtsDefaultCjsExportsPlugin } from 'fix-dts-default-cjs-exports/rollup'
import { defineBuildConfig } from 'unbuild'

export default defineBuildConfig({
  entries: ['<your-entry-points>'],
  declaration: true,
  clean: true,
  rollup: { emitCJS: true },
  hooks: {
    'rollup:dts:options': (ctx, options) => {
      /* uncomment this block if you want to remove the unbuild internal plugin
      options.plugins = plugins.filter((p) => {
        if (!p || typeof p === 'string' || Array.isArray(p) || !('name' in p))
          return true

        return p.name !== 'unbuild-fix-cjs-export-type'
      })
      */
      options.plugins.push(FixDtsDefaultCjsExportsPlugin({
        warn: message => ctx.warnings.add(message)
      }))
    }
  }
})

tsup

Since tsup doesn't expose any hook to allow change internal configuration, we need a change in the package to include the Rollup plugin from this package instead its built-in one.

pkgroll

pkgroll is exposing only the cli, we need a change in the package to include the Rollup plugin from this package instead its built-in one.

License

MIT License © 2025-PRESENT Joaquín Sánchez

Keywords

rollup

FAQs

Package last updated on 18 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts