Bun Module Identifier

2.0.0 · active · verified Sun Apr 19

is-bun-module is a TypeScript utility library designed to programmatically identify and list modules within the Bun runtime environment. It distinguishes between Bun's native core modules (e.g., `bun:test`) and Node.js built-in modules that Bun has implemented (e.g., `fs`, `path`). The library provides functions to check individual module specifiers as well as retrieve comprehensive lists of all supported modules, optionally filtered by a specific Bun version string (e.g., '1.0.0' or 'latest'). As of version 2.0.0, the package is actively maintained with regular updates to reflect changes in Bun's module landscape, and it ships with full TypeScript type definitions for robust development.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates how to use `isBunModule`, `isBunImplementedNodeModule`, and `getBunBuiltinModules` to identify and list modules, including specifying Bun versions.

import { 
  isBunModule,
  isBunImplementedNodeModule,
  getBunBuiltinModules,
  BunVersion 
} from 'is-bun-module';

// Check specific Bun modules
console.log('Is "bun" a Bun module?', isBunModule('bun'));
console.log('Is "bun:test" a Bun module (Bun v1.0.0)?', isBunModule('bun:test', '1.0.0' as BunVersion));
console.log('Is "notBunModule" a Bun module?', isBunModule('notBunModule'));

// Check Node.js modules implemented in Bun
console.log('Is "fs" a Bun-implemented Node module?', isBunImplementedNodeModule('fs'));
console.log('Is "node:http2" a Bun-implemented Node module (Bun v1.0.0)?', isBunImplementedNodeModule('node:http2', '1.0.0' as BunVersion));

// Get a list of all builtin modules for the latest Bun version
const latestBuiltins = getBunBuiltinModules('latest');
console.log('First 5 builtin modules (latest Bun):', latestBuiltins.slice(0, 5));

// Example with an older Bun version
const bunV1_0_0Builtins = getBunBuiltinModules('1.0.0' as BunVersion);
console.log('Number of builtin modules in Bun v1.0.0:', bunV1_0_0Builtins.length);

// Type assertion for clarity when passing string literals as BunVersion
const currentBunVersion: BunVersion = '1.0.13';
console.log(`Checking 'crypto' against Bun ${currentBunVersion}:`, isBunImplementedNodeModule('crypto', currentBunVersion));

view raw JSON →