CLI tool for TypeScript Backend Toolkit - generate modules, plugins, middleware, seeders, and factories
npm install @themuneebh-oss/tbkCLI tool for TypeScript Backend Toolkit projects. Generate modules, plugins, middleware, seeders, and factories with a single command.
This package is typically installed as a dev dependency in TypeScript Backend Toolkit projects:
``bash`
pnpm add -D @themuneebh-oss/tbk
Or via npm:
`bash`
npm install -D @themuneebh-oss/tbk
After installation, use the tbk command:
`bashGenerate a complete module
pnpm tbk generate:module
Commands
$3
Generate a complete module with all files (dto, model, schema, services, controller, router).
`bash
pnpm tbk generate:module user
pnpm tbk generate:module product --path /api/v1
`Options:
-
-p, --path - API path prefix (default: /api)Creates:
-
src/modules/ - Zod schemas and TypeScript types
- src/modules/ - Mongoose model
- src/modules/ - Request/response validation schemas
- src/modules/ - Business logic and data access
- src/modules/ - HTTP request handlers
- src/modules/ - MagicRouter route definitions$3
Generate a new plugin with the standard structure.
`bash
pnpm tbk generate:plugin cache
`Creates:
-
src/plugins/ - Plugin factory and registration$3
Generate a new Express middleware.
`bash
pnpm tbk generate:middleware rateLimiter
`Creates:
-
src/middlewares/ - Middleware function$3
Run database seeders to populate test data.
`bash
Run all seeders in dev group
pnpm tbk seedRun specific seeders
pnpm tbk seed --only UserSeeder,ProductSeederFresh run (drops collections)
pnpm tbk seed --freshDry run (no writes)
pnpm tbk seed --dry-runForce run in production
pnpm tbk seed --force
`Options:
-
-g, --group - Group to run (base|dev|test|demo) (default: dev)
- --only - Comma-separated seeder names
- --fresh - Drop involved collections before seeding
- --force - Force run in production
- --dry-run - Do not write, only log actions
- --seed - Random seed for data generation (default: 1)
- --no-transaction - Disable transactions$3
Scaffold a new seeder for a module. Automatically detects model fields and dependencies.
`bash
pnpm tbk make:seeder user/User
pnpm tbk make:seeder product/Product --count 10 --unique slug
`Options:
-
-c, --count - Default count for dev/test (default: 5)
- -u, --unique - Unique field to upsert by
- -d, --depends-on - Comma-separated additional dependencies
- --model - Model export name when not defaultCreates:
-
src/modules/Note: The seeder must be manually registered in
src/seeders/registry.ts.$3
Scaffold a new factory for a module. Automatically detects model fields and create functions.
`bash
pnpm tbk make:factory user/User
pnpm tbk make:factory product/Product --model ProductModel --use service
`Options:
-
--model - Model export name when not default
- --use - Prefer using service create function when present (default: service)
- --id-type - Hint for \_id type when ambiguousCreates:
-
src/modules/Requirements
- Node.js >= 18.0.0
- TypeScript Backend Toolkit project structure
- MongoDB connection (for seed command)
How It Works
The CLI tool uses dynamic imports and model introspection to:
- Analyze Mongoose schemas to detect fields, types, and relationships
- Generate type-safe code following project patterns
- Ensure consistency with existing codebase structure
Development
`bash
Build the package
pnpm buildWatch mode
pnpm devType check
pnpm typecheck
``MIT