Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
tsconfig presets
✓ { "extends": "bdg-tooling/tsconfig/node" }
✗ { "extends": "bdg-tooling/dist/tsconfig/node" }
Presets are published in the tsconfig/ directory; never import from dist/.
Biome configs
✓ import biomeConfig from 'bdg-tooling/biome/base.json' assert { type: 'json' };
✗ require('bdg-tooling/biome/base.json')
Package is ESM-only; use import assertions for JSON files.
commitlint config
✓ module.exports = require('bdg-tooling/commitlint');
✗ import commitlintConfig from 'bdg-tooling/commitlint'
commitlint config is CommonJS; use require() in commitlint.config.js.
lint-staged config
✓ import lintStagedConfig from 'bdg-tooling/lint-staged/biome';
✗ const lintStagedConfig = require('bdg-tooling/lint-staged/biome')
lint-staged config exports ESM default; import for ESM projects.
CLI
✓ npx bdg-tooling init
✗ pnpm dlx bdg-tooling init --yes
Use npx or pnpm dlx without extra flags; --yes may skip prompts.
Installs bdg-tooling with required peers, runs the interactive init CLI to scaffold tsconfig, Biome, commitlint, lint-staged, and Husky setup.
// Install the package and required peer deps
pnpm add -D bdg-tooling typescript @biomejs/biome
// Optional but needed for husky/commitlint:
pnpm add -D husky lint-staged @commitlint/cli @commitlint/config-conventional
// Run the interactive CLI scanner:
npx bdg-tooling init
// The CLI will ask:
// - Project type (node/react/nextjs/nestjs/library)
// - Which tsconfig to create or patch
// - Whether to install deps now
// - Whether to set up Husky +
// commitlint + lint-staged
//
// After completion, your tsconfig.json
// may look like:
{
"extends": "bdg-tooling/tsconfig/react",
"compilerOptions": {},
"include": ["src"]
}
// For manual setup (no CLI):
// In tsconfig.json:
// { "extends": "bdg-tooling/tsconfig/node" }
//
// In biome.json:
// { "extends": ["bdg-tooling/biome/base"] }
//
// In commitlint.config.js:
// module.exports = require('bdg-tooling/commitlint');
bdg-tooling --version
Errors
Common errors & fixes
Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/bdg-tooling/lint-staged/biome.js from ... not supported.
lint-staged config is ESM, cannot be required() in a CommonJS lint-staged.config.js.
fixRename lint-staged.config.js to .mjs or use dynamic import: const config = await import('bdg-tooling/lint-staged/biome').then(m => m.default); Cannot find module 'bdg-tooling/tsconfig/base'
Consumer's tsconfig.json uses wrong path (e.g., dist/ or missing file extension).
fixUse correct path without extension: "extends": "bdg-tooling/tsconfig/base"
TypeError: Cannot read properties of undefined (reading 'conventional')
commitlint config not loaded correctly — likely using ESM import instead of CJS require.
fixIn commitlint.config.js: module.exports = require('bdg-tooling/commitlint'); error: package.json requires a peer of @biomejs/biome@>=2.0.0 but none is installed
Missing peer dependency @biomejs/biome.
fixRun: pnpm add -D @biomejs/biome
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'commander' imported from /node_modules/bdg-tooling/dist/cli/init.js
CLI uses commander but it may not be installed (missing peer dep).
fixRun: pnpm add -D commander
Audit
Dependencies
@biomejs/biomerequiredFormatter/linter configs target Biome >=2
typescriptrequiredtsconfig presets require TypeScript >=5
@commitlint/clioptionalcommitlint config requires the CLI to enforce Conventional Commits
@commitlint/config-conventionaloptionalCommitlint rule set for conventional commits
huskyoptionalGit hooks used by lint-staged and commitlint
lint-stagedoptionalRun Biome on staged files