Registry / devops / bdg-tooling

bdg-tooling

JSON →
library1.5.1jsnpmunverified

Shared tooling configuration package for TypeScript projects — provides zero-fuss, plain-object exports for tsconfig presets (node, library/react/nextjs/nestjs), Biome formatter/linter configs, commitlint rule sets, and lint-staged Biome runners. Current stable version 1.5.1 requires Node >=22, pnpm >=10, and peer deps: @biomejs/biome >=2, @commitlint/cli >=19, @commitlint/config-conventional >=19, husky >=9, lint-staged >=15, typescript >=5. Distributed as ESM-only tarball; includes an interactive CLI (`npx bdg-tooling init`) that scaffolds consumer projects, auto-detects package manager, and optionally sets up Husky git hooks. No runtime overhead — config exports are tiny JSON/JS files published from biome/, commitlint/, lint-staged/, tsconfig/ directories.

npm install bdg-tooling
INSTALL
IMPORT
SIG · BDG-TOOLING
B
bdg-tooling
devopsjavascriptv1.5.1
harness data pending
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
Debug
Known issues
breakingRequires Node >=22.0.0 and pnpm >=10.0.0; older runtimes fail with cryptic errors.
fix
Upgrade Node to >=22 and pnpm to >=10, or use a different tool.
affects: >=1.0.0
breakingPackage is ESM-only; do not use require() for core config files (except commitlint).
fix
Use import assertions for JSON; for tsconfig extends, never point to dist/.
affects: >=1.0.0
gotchacommitlint config is CommonJS; must use module.exports = require(...) not ESM import.
fix
In commitlint.config.js: module.exports = require('bdg-tooling/commitlint');
affects: >=1.0.0
gotchalint-staged config is ESM; use import not require().
fix
import config from 'bdg-tooling/lint-staged/biome';
affects: >=1.0.0
deprecatedCLI --yes flag may be removed in future; interactive mode is preferred.
fix
Omit --yes and let CLI prompt or pipe stdin.
affects: >=1.5.0
gotchatsconfig presets are not exported from package.json; they must be referenced by path: bdg-tooling/tsconfig/<preset>.
fix
Use exact path relative to package root (no 'dist').
affects: >=1.0.0
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.
fix
Rename 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).
fix
Use 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.
fix
In 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.
fix
Run: 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).
fix
Run: pnpm add -D commander
Upgrade
Version history
1.5.1latest on npm
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
Agent activity
7 hits · last 30 days
node
6
Resources