Skip to main content


build status npm version

Load and resolve custom file types at runtime with a more powerful Node.js require replacement.

import { requireModule } from '@boost/module';

const result = requireModule('./some/non-js/file.ts');

Or with next-generation Node.js hooks.

node --import @boost/module/register ./path/to/entry-point.mjs


  • CommonJS based importing with requireModule()
  • CommonJS interoperability with ESM-like files
  • ECMAScript module based importing with a custom Node.js hook
  • Supported file types: TypeScript


yarn add @boost/module



Type Aliases


ModuleLike<D, N>: N & { __esModule?: boolean; default: D extends void ? N : D }

Return shape of a module. The default export can be typed with the D generic slot, and the named exports can be typed with an object in the N generic slot.

If there is no default export (classic Node.js exports pattern), then void can be passed to the D generic, which will populate the default property with the named exports.

Type parameters

  • D = unknown
  • N: object = {}


PathLike: string | { toString: () => string }