Skip to content

Commit 6b1a903

Browse files
committed
refactor(tbk): update OpenAPI and SDK generation commands
- Replaced `pnpm openapi` and `pnpm gen-sdk` commands with `pnpm tbk docs:openapi` and `pnpm tbk docs:sdk` for better organization. - Removed deprecated scripts for OpenAPI and seeding, consolidating functionality within the `@tbk/cli`. - Updated documentation across multiple files to reflect the new command structure and usage. - Added new actions for generating OpenAPI specifications and TypeScript SDKs within the CLI tool.
1 parent f6e4774 commit 6b1a903

File tree

16 files changed

+300
-96
lines changed

16 files changed

+300
-96
lines changed

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
- `pnpm build` — compile TypeScript via `tsup` to `dist/`.
1515
- `pnpm start` | `pnpm start:dev|:prod|:local` — run compiled or env-specific entry via `dotenv-cli`.
1616
- `pnpm typecheck` — strict type checks without emit. `pnpm lint` | `pnpm lint:fix` — ESLint with Prettier.
17-
- Useful: `pnpm openapi` (generate spec), `pnpm seed` (dev seed), `pnpm email:dev` (preview emails).
17+
- Useful: `pnpm tbk docs:openapi` (generate spec), `pnpm tbk seed` (dev seed), `pnpm email:dev` (preview emails).
1818

1919
## Coding Style & Naming Conventions
2020

CLAUDE.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,12 @@ pnpm tbk seed # Run database seeders
3535

3636
### OpenAPI Documentation
3737
```bash
38-
pnpm openapi # Generate OpenAPI spec (public/openapi.yml)
39-
pnpm gen-sdk # Generate TypeScript SDK from OpenAPI spec
38+
pnpm tbk docs:openapi # Generate OpenAPI spec (public/openapi.yml)
39+
pnpm tbk docs:sdk # Generate TypeScript SDK from OpenAPI spec
40+
41+
# Or use convenience aliases:
42+
pnpm openapi # Alias for tbk docs:openapi
43+
pnpm gen-sdk # Alias for tbk docs:sdk
4044
```
4145

4246
Visit `http://localhost:3000/docs` for live Swagger UI.

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,10 @@ pnpm lint # ESLint + Prettier
154154
pnpm tbk g:module <name> # Generate complete module
155155
pnpm tbk g:plugin <name> # Generate plugin
156156
pnpm tbk seed # Run database seeders
157+
pnpm tbk docs:openapi # Generate OpenAPI spec
158+
pnpm tbk docs:sdk # Generate TypeScript SDK
157159

158-
# Documentation
159-
pnpm openapi # Generate OpenAPI spec
160+
# Other Tools
160161
pnpm email:dev # Preview email templates
161162
```
162163

package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,8 @@
1212
"typecheck": "tsc --noEmit",
1313
"lint": "eslint",
1414
"lint:fix": "eslint --fix",
15-
"openapi": "dotenv -e .env.development -- tsx scripts/gen-openapi.ts",
16-
"seed": "dotenv -e .env.development -- tsx scripts/seed.ts",
1715
"email:dev": "email dev --dir ./src/email/templates",
18-
"tbk": "dotenv -e .env.development -- @tbk/cli",
19-
"gen-sdk": "npx swagger-typescript-api generate --path ./public/openapi.yml --output ./src/generated"
16+
"tbk": "tbk"
2017
},
2118
"devDependencies": {
2219
"@eslint/js": "^9.4.0",

packages/create-tbk-app/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,8 @@ pnpm build # Build for production
220220
pnpm start:prod # Run production build
221221
pnpm typecheck # Type check without building
222222
pnpm lint # Run ESLint
223-
pnpm openapi # Generate OpenAPI spec
223+
pnpm tbk docs:openapi # Generate OpenAPI spec
224+
pnpm tbk docs:sdk # Generate TypeScript SDK
224225

225226
# CLI tool (module generation)
226227
pnpm tbk generate:module <name> # Generate CRUD module

packages/create-tbk-app/TEMPLATE_EXTRACTION.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -403,12 +403,12 @@ templates/base/src/middlewares/can-access.ts
403403

404404
#### 6.1 Scripts
405405
```bash
406-
# Always copy
407-
templates/base/scripts/gen-openapi.ts
406+
# Note: gen-openapi.ts is now part of the tbk CLI (tbk docs:openapi)
407+
# No standalone scripts needed unless custom functionality is required
408408

409-
# Only if AUTH (for seeding)
409+
# Only if AUTH (for seeding - deprecated, use tbk seed instead)
410410
{{#if AUTH}}
411-
templates/base/scripts/seed.ts
411+
templates/base/scripts/seed.ts (DEPRECATED - use tbk seed)
412412
{{/if}}
413413
```
414414

packages/create-tbk-app/src/constants/dependencies.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export const CORE_DEPENDENCIES = {
1818
};
1919

2020
export const CORE_DEV_DEPENDENCIES = {
21+
'@tbk/cli': '^0.0.1',
2122
typescript: '^5.1.6',
2223
'@types/express': '^4.17.15',
2324
'@types/node': '^18.11.18',
@@ -156,7 +157,10 @@ export function resolveDependencies(config: ProjectConfig): {
156157
// Helper to merge feature dependencies
157158
const addFeature = (feature: keyof typeof FEATURE_DEPENDENCIES) => {
158159
Object.assign(dependencies, FEATURE_DEPENDENCIES[feature].dependencies);
159-
Object.assign(devDependencies, FEATURE_DEPENDENCIES[feature].devDependencies);
160+
Object.assign(
161+
devDependencies,
162+
FEATURE_DEPENDENCIES[feature].devDependencies,
163+
);
160164
};
161165

162166
// Security plugin (always included for standard and full presets)
@@ -231,19 +235,18 @@ export function resolveDependencies(config: ProjectConfig): {
231235

232236
export function generateScripts(config: ProjectConfig): Record<string, string> {
233237
const scripts: Record<string, string> = {
234-
dev: config.email !== 'none'
235-
? 'concurrently "pnpm start:dev" "pnpm email:dev"'
236-
: 'pnpm start:dev',
238+
dev:
239+
config.email !== 'none'
240+
? 'concurrently "pnpm start:dev" "pnpm email:dev"'
241+
: 'pnpm start:dev',
237242
'start:dev': 'dotenv -e .env.development -- tsx --watch ./src/main.ts',
238243
build: 'tsup --config build.ts',
239244
'start:prod': 'dotenv -e .env.production -- node ./dist/main.js',
240245
'start:local': 'dotenv -e .env.local -- node ./dist/main.js',
241246
typecheck: 'tsc --noEmit',
242247
lint: 'eslint',
243248
'lint:fix': 'eslint --fix',
244-
openapi: 'dotenv -e .env.development -- tsx scripts/gen-openapi.ts',
245-
tbk: 'dotenv -e .env.development -- tsx bin/tbk',
246-
'gen-sdk': 'npx swagger-typescript-api generate --path ./public/openapi.yml --output ./src/generated',
249+
tbk: 'tbk',
247250
};
248251

249252
// Add email dev script if email is enabled

packages/create-tbk-app/templates/base/AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
- `pnpm build` — compile TypeScript via `tsup` to `dist/`.
1515
- `pnpm start` | `pnpm start:dev|:prod|:local` — run compiled or env-specific entry via `dotenv-cli`.
1616
- `pnpm typecheck` — strict type checks without emit. `pnpm lint` | `pnpm lint:fix` — ESLint with Prettier.
17-
- Useful: `pnpm openapi` (generate spec), `pnpm seed` (dev seed), `pnpm email:dev` (preview emails).
17+
- Useful: `pnpm tbk docs:openapi` (generate spec), `pnpm tbk seed` (dev seed), `pnpm email:dev` (preview emails).
1818

1919
## Coding Style & Naming Conventions
2020

packages/create-tbk-app/templates/base/CLAUDE.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,12 @@ pnpm tbk seed # Run database seeders
3535

3636
### OpenAPI Documentation
3737
```bash
38-
pnpm openapi # Generate OpenAPI spec (public/openapi.yml)
39-
pnpm gen-sdk # Generate TypeScript SDK from OpenAPI spec
38+
pnpm tbk docs:openapi # Generate OpenAPI spec (public/openapi.yml)
39+
pnpm tbk docs:sdk # Generate TypeScript SDK from OpenAPI spec
40+
41+
# Or use convenience aliases:
42+
pnpm openapi # Alias for tbk docs:openapi
43+
pnpm gen-sdk # Alias for tbk docs:sdk
4044
```
4145

4246
Visit `http://localhost:3000/docs` for live Swagger UI.

packages/tbk/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@
3838
},
3939
"license": "MIT",
4040
"dependencies": {
41-
"commander": "^14.0.1"
41+
"commander": "^14.0.1",
42+
"dotenv": "^16.4.5",
43+
"execa": "^9.5.2"
4244
},
4345
"devDependencies": {
4446
"@types/node": "^18.11.18",

0 commit comments

Comments
 (0)