speedrun-cli 2.6.10 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/package.json +7 -7
- package/src/generator.js +1 -16
- package/src/moduleGenerator.js +597 -121
- package/src/postSetup.js +423 -402
- package/src/prompts.js +25 -3
- package/templates/orm/drizzle/package.json +2 -1
- package/templates/orm/mongoose/package.json +2 -1
- package/templates/orm/prisma/package.json +1 -0
- package/templates/base-crud/src/modules/products/dto/create-product.dto.ts +0 -34
- package/templates/base-crud/src/modules/products/dto/product.dto.ts +0 -36
- package/templates/base-crud/src/modules/products/dto/update-product.dto.ts +0 -4
- package/templates/base-crud/src/modules/products/products.controller.ts +0 -78
- package/templates/base-crud-drizzle/src/modules/products/dto/create-product.dto.ts +0 -34
- package/templates/base-crud-drizzle/src/modules/products/dto/product.dto.ts +0 -36
- package/templates/base-crud-drizzle/src/modules/products/dto/update-product.dto.ts +0 -4
- package/templates/base-crud-drizzle/src/modules/products/products.controller.ts +0 -78
- package/templates/base-crud-drizzle/src/modules/products/products.module.ts +0 -24
- package/templates/base-crud-drizzle/src/modules/products/products.service.ts +0 -140
- package/templates/base-crud-drizzle/src/modules/products/schema/products.schema.ts +0 -39
- package/templates/base-crud-mongoose/src/modules/products/dto/create-product.dto.ts +0 -34
- package/templates/base-crud-mongoose/src/modules/products/dto/product.dto.ts +0 -36
- package/templates/base-crud-mongoose/src/modules/products/dto/update-product.dto.ts +0 -4
- package/templates/base-crud-mongoose/src/modules/products/products.controller.ts +0 -78
- package/templates/base-crud-mongoose/src/modules/products/products.module.ts +0 -26
- package/templates/base-crud-mongoose/src/modules/products/products.service.ts +0 -133
- package/templates/base-crud-mongoose/src/modules/products/schemas/product.schema.ts +0 -67
- package/templates/base-crud-prisma/src/modules/products/dto/create-product.dto.ts +0 -34
- package/templates/base-crud-prisma/src/modules/products/dto/product.dto.ts +0 -36
- package/templates/base-crud-prisma/src/modules/products/dto/update-product.dto.ts +0 -4
- package/templates/base-crud-prisma/src/modules/products/products.controller.ts +0 -78
- package/templates/base-crud-prisma/src/modules/products/products.module.ts +0 -12
- package/templates/base-crud-prisma/src/modules/products/products.service.ts +0 -100
- package/templates/base-crud-typeorm/src/modules/products/dto/create-product.dto.ts +0 -34
- package/templates/base-crud-typeorm/src/modules/products/dto/product.dto.ts +0 -36
- package/templates/base-crud-typeorm/src/modules/products/dto/update-product.dto.ts +0 -4
- package/templates/base-crud-typeorm/src/modules/products/entities/product.entity.ts +0 -58
- package/templates/base-crud-typeorm/src/modules/products/products.controller.ts +0 -78
- package/templates/base-crud-typeorm/src/modules/products/products.module.ts +0 -25
- package/templates/base-crud-typeorm/src/modules/products/products.service.ts +0 -102
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,28 @@ All notable changes to create-nestjs-auth will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.7.0] - 2026-08-22
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Scaffolding Cleanup** — Static `src/modules/products` directory has been completely removed from all initial project templates (`templates/base-crud*`). Scaffolding now creates zero CRUD modules by default.
|
|
12
|
+
- **Interactive Field Builder Loop** — When generating a module (via guided setup or `speedrun-cli g [module_name]`), users can interactively define custom fields (`fieldName`, `fieldType`: `String`/`Number`/`Boolean`/`Date`, `isOptional`).
|
|
13
|
+
- **Dynamic ORM Schema Synchronization** — Automatically syncs definitions to the project's detected ORM:
|
|
14
|
+
- **Prisma:** Appends `model` with appropriate data types (`String`, `Float`/`Int`, `Boolean`, `DateTime`) and optional modifiers (`?`) to `prisma/schema.prisma`.
|
|
15
|
+
- **TypeORM:** Generates `@Entity()` class in `src/modules/[kebab]/entities/[singular].entity.ts`.
|
|
16
|
+
- **Mongoose:** Generates `@Schema()` class in `src/modules/[kebab]/schemas/[singular].schema.ts`.
|
|
17
|
+
- **Drizzle:** Generates `pgTable` definition in `src/modules/[kebab]/schema/[kebab].schema.ts`.
|
|
18
|
+
- **Auto-Generated Starter Seed Template** — Creates starter seed snippet populated with dummy data based on defined fields in `prisma/seeds/[kebab].seed.ts` (Prisma) or `src/database/seeds/[kebab].seed.ts` (TypeORM/Mongoose/Drizzle).
|
|
19
|
+
- **Dynamic Post-Setup Summary Log** — Displays clear post-install next steps dynamically tailored for each ORM (migration & seed commands).
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- **Interactive Setup Prompt Sequence** updated:
|
|
23
|
+
1. `Enable Base CRUD Architecture?` (Default: `Yes`)
|
|
24
|
+
2. `Do you want to generate your first CRUD module now?` (Default: `Yes`)
|
|
25
|
+
3. Shared Module Generator execution for module name, CRUD mode, and custom field loop.
|
|
26
|
+
- **Controller Service Constructor Visibility** fixed to `protected readonly service: [Name]Service` so generated controllers safely extend `BaseController`.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
8
30
|
## [2.6.10] - 2026-08-21
|
|
9
31
|
|
|
10
32
|
### Fixed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "speedrun-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "CLI tool to scaffold a production-ready NestJS authentication system with JWT, refresh tokens, and RBAC",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nestjs",
|
|
@@ -25,18 +25,18 @@
|
|
|
25
25
|
"generator"
|
|
26
26
|
],
|
|
27
27
|
"author": {
|
|
28
|
-
"name": "
|
|
29
|
-
"email": "
|
|
30
|
-
"url": "https://
|
|
28
|
+
"name": "astralicc",
|
|
29
|
+
"email": "innzwha@gmail.com",
|
|
30
|
+
"url": "https://instagram.com/iifn.aa"
|
|
31
31
|
},
|
|
32
32
|
"license": "MIT",
|
|
33
|
-
"homepage": "https://github.com/
|
|
33
|
+
"homepage": "https://github.com/astralicc/speedrun-cli#readme",
|
|
34
34
|
"repository": {
|
|
35
35
|
"type": "git",
|
|
36
|
-
"url": "git+https://github.com/
|
|
36
|
+
"url": "git+https://github.com/astralicc/speedrun-cli.git"
|
|
37
37
|
},
|
|
38
38
|
"bugs": {
|
|
39
|
-
"url": "https://github.com/
|
|
39
|
+
"url": "https://github.com/astralicc/speedrun-cli/issues"
|
|
40
40
|
},
|
|
41
41
|
"bin": {
|
|
42
42
|
"create-nestjs-auth": "./index.js"
|
package/src/generator.js
CHANGED
|
@@ -102,29 +102,14 @@ async function generateFromModularTemplates(targetDir, { baseDir, ormDir, dbDir,
|
|
|
102
102
|
|
|
103
103
|
// Step 6: Apply Base CRUD Architecture overlay
|
|
104
104
|
if (baseCrud) {
|
|
105
|
-
// 6a. Shared layer: abstract base + shared DTOs + shared controller
|
|
106
105
|
const baseCrudDir = path.join(__dirname, '..', 'templates', 'base-crud');
|
|
107
106
|
if (await fs.pathExists(baseCrudDir)) {
|
|
108
|
-
console.log(chalk.gray(' Adding Base CRUD Architecture (
|
|
107
|
+
console.log(chalk.gray(' Adding Base CRUD Architecture (BaseService, BaseController & Swagger helpers)...'));
|
|
109
108
|
await fs.copy(baseCrudDir, targetDir, {
|
|
110
109
|
overwrite: true,
|
|
111
110
|
filter: createCopyFilter(baseCrudDir),
|
|
112
111
|
});
|
|
113
112
|
}
|
|
114
|
-
|
|
115
|
-
// 6b. ORM-specific ProductModule example (overrides products.service.ts + module)
|
|
116
|
-
const baseCrudOrmDir = path.join(__dirname, '..', 'templates', `base-crud-${orm}`);
|
|
117
|
-
if (await fs.pathExists(baseCrudOrmDir)) {
|
|
118
|
-
console.log(chalk.gray(` Adding ${ORM_OPTIONS[orm]?.name || orm} ProductModule example...`));
|
|
119
|
-
await fs.copy(baseCrudOrmDir, targetDir, {
|
|
120
|
-
overwrite: true,
|
|
121
|
-
filter: createCopyFilter(baseCrudOrmDir),
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
// 6c. Automatically register ProductsModule in src/app.module.ts
|
|
126
|
-
const { registerInAppModule } = require('./moduleGenerator');
|
|
127
|
-
await registerInAppModule(targetDir, 'Products', 'products');
|
|
128
113
|
}
|
|
129
114
|
}
|
|
130
115
|
|