Problem statement
Developers building Node.js REST APIs with Express cannot use dot. They have to set up TypeScript config, project structure, linting, and the server boilerplate by hand every time.
Proposed solution
Implement NodeExpressGenerator in generators/typescript/express.go.
Name(): "node-express"
Language(): "typescript"
Modules(): ["express"]
Apply() generates (file structure varies by spec.Config.Architecture):
MVC:
src/
index.ts ← Express server entry
controllers/
models/
routes/
middlewares/
package.json
tsconfig.json
.eslintrc.json
Clean Architecture:
src/
domain/
usecases/
interfaces/controllers/
infrastructure/
Hexagonal:
src/
core/ ← domain + ports
adapters/ ← primary (HTTP) + secondary (DB, external)
Commands registered: new route <name>, new controller <name>, new middleware <name>
Alternatives considered
Generate a framework-agnostic Node.js setup and let the developer add Express. Rejected — dot's value is the complete, wired-up scaffold, not a blank slate.
Area
Core
Additional context
Uses static composition with TSMVCGenerator, TSCleanArchGenerator, or TSHexagonalGenerator based on spec.Config.Architecture. Depends on: TypeScript architecture generators.
Problem statement
Developers building Node.js REST APIs with Express cannot use dot. They have to set up TypeScript config, project structure, linting, and the server boilerplate by hand every time.
Proposed solution
Implement
NodeExpressGeneratoringenerators/typescript/express.go.Name():"node-express"Language():"typescript"Modules():["express"]Apply()generates (file structure varies byspec.Config.Architecture):MVC:
Clean Architecture:
Hexagonal:
Commands registered:
new route <name>,new controller <name>,new middleware <name>Alternatives considered
Generate a framework-agnostic Node.js setup and let the developer add Express. Rejected — dot's value is the complete, wired-up scaffold, not a blank slate.
Area
Core
Additional context
Uses static composition with
TSMVCGenerator,TSCleanArchGenerator, orTSHexagonalGeneratorbased onspec.Config.Architecture. Depends on: TypeScript architecture generators.