orbit
Command-line tool for scaffolding and code generation.
Installation
bash
bun add -g orbit
# or use with bunx
orbit <command>Commands
Create New Project
bash
orbit new my-app
# Options
orbit new my-app --skip-git # Skip git initialization
orbit new my-app --skip-install # Skip dependency installationGenerated structure:
my-app/
├── src/
│ ├── main.ts
│ ├── app.module.ts
│ ├── app.controller.ts
│ └── app.service.ts
├── test/
│ └── app.e2e-spec.ts
├── package.json
├── tsconfig.json
└── README.mdGenerate Components
bash
# Generate controller
orbit generate controller users
orbit g controller users # shorthand
# Generate service
orbit generate service users
orbit g s users # shorthand
# Generate module
orbit generate module users
orbit g mo users
# Generate guard
orbit generate guard auth
# Generate pipe
orbit generate pipe validation
# Generate interceptor
orbit generate interceptor logging
# Generate middleware
orbit generate middleware logger
# Generate filter
orbit generate filter http-exception
# Generate complete resource (CRUD)
orbit generate resource users
orbit g res usersGenerate Options
bash
# Specify directory
orbit g controller users --path src/modules/users
# Flat structure (no folder)
orbit g service users --flat
# Skip spec file
orbit g controller users --no-spec
# Dry run (preview)
orbit g module users --dry-runDevelopment Server
bash
orbit dev
# With options
orbit dev --port 3000
orbit dev --host 0.0.0.0Features:
- Hot reload with Bun.Transpiler
- Near-instant file transpilation
- Automatic restart on file changes
Build
bash
orbit build
# Options
orbit build --outdir dist
orbit build --minifyTest
bash
orbit test
# Options
orbit test --watch
orbit test --coverage
orbit test src/users/GraphQL Generation
bash
# Generate resolver
orbit generate resolver users
# Generate complete GraphQL resource
orbit generate graphql-resource usersGenerated files:
users.resolver.tsusers.service.tsdto/create-user.input.tsdto/update-user.input.tsentities/user.entity.ts
Microservices Generation
bash
# Generate message handler
orbit generate handler notifications
# Generate complete microservice resource
orbit generate microservice-resource ordersConfiguration
Create orbit.json in project root:
json
{
"sourceRoot": "src",
"generateOptions": {
"spec": true,
"flat": false
},
"compilerOptions": {
"plugins": []
}
}Programmatic Usage
typescript
import { CLI } from 'orbit';
const cli = new CLI();
// Generate component
await cli.generate('controller', 'users', {
path: 'src/modules/users',
spec: true,
});
// Create project
await cli.createProject('my-app', {
skipGit: false,
skipInstall: false,
});Exports
typescript
export {
CLI,
NewCommand,
GenerateCommand,
DevCommand,
BuildCommand,
TestCommand,
};