Module Commands
Generate and manage modules — the building blocks of your application. Each module is a self-contained directory under src/modules/ with its own controllers, routes, models, jobs, and seeders.
npm run maker <command> [options]pnpm maker <command> [options]yarn maker <command> [options]bun maker <command> [options]Scaffold Commands
module:make <name>
Create a complete module with all default scaffolding.
| Generated | Path |
|---|---|
| Controller | src/modules/<name>/controllers/<name>.controller.ts |
| Schema | src/modules/<name>/controllers/<name>.schema.ts |
| Route | src/modules/<name>/routes/api.ts |
| Model | src/modules/<name>/database/models/<name>.ts |
| Seeder | src/modules/<name>/database/seeders/<name>.seeder.ts |
src/modules/posts/
├── controllers/
│ ├── posts.controller.ts
│ └── posts.schema.ts
├── database/
│ ├── models/
│ │ └── posts.ts
│ └── seeders/
│ └── posts.seeder.ts
└── routes/
└── api.tsmodule:make-notification [name]
Generate a notification backend module with controller, routes, and job. Default name is notification.
| File | Purpose |
|---|---|
controllers/notification.controller.ts | 5 handlers: list, unreadCount, markRead, markAllRead, remove |
controllers/notification.schema.ts | Zod/OpenAPI schemas |
routes/api.ts | 5 routes under authMiddleware |
jobs/notification.ts | Queue handler for email delivery |
TIP
UI integration is manual — see Notification Guide for Vue copy-paste components and setup instructions.
module:example [name]
Generate a one-shot example module demonstrating framework features — queue jobs, real-time broadcasting, scheduler cron, and a model with CRUD. Default name is example.
src/modules/example/
├── controllers/
│ ├── example.controller.ts
│ └── example.schema.ts
├── database/
│ └── models/
│ └── example.ts
├── jobs/
│ └── example.job.ts
├── routes/
│ └── api.ts
└── consoles/
└── example.command.tsComponent Commands
Add individual components to an existing module. All support --force (overwrite) and --dry-run (preview).
module:make-route <module> [controller]
Generate or overwrite a route file for an existing module. If no controller name given, uses the latest modified controller in the module.
npm run maker module:make-route posts
npm run maker module:make-route posts custom-controllerpnpm maker module:make-route posts
pnpm maker module:make-route posts custom-controlleryarn maker module:make-route posts
yarn maker module:make-route posts custom-controllerbun maker module:make-route posts
bun maker module:make-route posts custom-controllermodule:make-controller <module> [name]
Generate a controller and schema file. If no name given, uses the module name.
npm run maker module:make-controller posts
npm run maker module:make-controller posts adminpnpm maker module:make-controller posts
pnpm maker module:make-controller posts adminyarn maker module:make-controller posts
yarn maker module:make-controller posts adminbun maker module:make-controller posts
bun maker module:make-controller posts adminmodule:make-model <module> [name]
Generate a Drizzle model file with dialect-aware schema (MySQL, Postgres, or SQLite). Auto-detects your database dialect from DATABASE_URL.
npm run maker module:make-model postspnpm maker module:make-model postsyarn maker module:make-model postsbun maker module:make-model postsmodule:make-seeder <module> [name]
Generate a seeder file for a model. The seeder is registered in the module's seeder index.
npm run maker module:make-seeder postspnpm maker module:make-seeder postsyarn maker module:make-seeder postsbun maker module:make-seeder postsmodule:make-job <module> [name]
Generate a queue job file with the shouldQueue pattern.
npm run maker module:make-job posts publishpnpm maker module:make-job posts publishyarn maker module:make-job posts publishbun maker module:make-job posts publishmodule:make-console <module> [name]
Generate a scheduler/console command file with the defineSchedule pattern.
npm run maker module:make-console posts cleanuppnpm maker module:make-console posts cleanupyarn maker module:make-console posts cleanupbun maker module:make-console posts cleanupmodule:make-test <module> [name]
Generate a unit test file for a module. If no name given, uses the module name. The test file is created under the module's test directory.
npm run maker module:make-test posts
npm run maker module:make-test posts user-testpnpm maker module:make-test posts
pnpm maker module:make-test posts user-testyarn maker module:make-test posts
yarn maker module:make-test posts user-testbun maker module:make-test posts
bun maker module:make-test posts user-testDelete Commands
module:delete <name>
Soft-delete a module by moving it to src/storage/trash/modules/<name>-<timestamp>/. The module can be recovered from trash.
npm run maker module:delete posts
npm run maker module:delete posts -- --yes
npm run maker module:delete posts -- --dry-runpnpm maker module:delete posts
pnpm maker module:delete posts --yes
pnpm maker module:delete posts --dry-runyarn maker module:delete posts
yarn maker module:delete posts --yes
yarn maker module:delete posts --dry-runbun maker module:delete posts
bun maker module:delete posts --yes
bun maker module:delete posts --dry-runmodule:delete-notification [name]
Remove the notification backend module (moves to trash). UI files are user-managed.
npm run maker module:delete-notification
npm run maker module:delete-notification -- --yes
npm run maker module:delete-notification -- --dry-runpnpm maker module:delete-notification
pnpm maker module:delete-notification --yes
pnpm maker module:delete-notification --dry-runyarn maker module:delete-notification
yarn maker module:delete-notification --yes
yarn maker module:delete-notification --dry-runbun maker module:delete-notification
bun maker module:delete-notification --yes
bun maker module:delete-notification --dry-runmodule:trash:clean [name]
Permanently remove entries from module trash. Without a name, cleans all trash. With a name, cleans only matching entries.
npm run maker module:trash:clean
npm run maker module:trash:clean posts
npm run maker module:trash:clean -- --yes
npm run maker module:trash:clean -- --dry-runpnpm maker module:trash:clean
pnpm maker module:trash:clean posts
pnpm maker module:trash:clean --yes
pnpm maker module:trash:clean --dry-runyarn maker module:trash:clean
yarn maker module:trash:clean posts
yarn maker module:trash:clean --yes
yarn maker module:trash:clean --dry-runbun maker module:trash:clean
bun maker module:trash:clean posts
bun maker module:trash:clean --yes
bun maker module:trash:clean --dry-runUtility Commands
module:list
List all discovered modules under src/modules/.
npm run maker module:listpnpm maker module:listyarn maker module:listbun maker module:listmodule:seed <module>
Run seeders for a single module.
npm run maker module:seed postspnpm maker module:seed postsyarn maker module:seed postsbun maker module:seed postsmodule:migrate <module>
Generate a module-only schema, create a migration, and run it. Uses a temporary schema file that includes only the specified module's models.
npm run maker module:migrate posts
npm run maker module:migrate posts -- --keep-temppnpm maker module:migrate posts
pnpm maker module:migrate posts --keep-tempyarn maker module:migrate posts
yarn maker module:migrate posts --keep-tempbun maker module:migrate posts
bun maker module:migrate posts --keep-temp