Skip to content

chore(release): 0.1.5#12

Merged
alexmc2 merged 2 commits intomainfrom
release/0.1.5
Feb 18, 2026
Merged

chore(release): 0.1.5#12
alexmc2 merged 2 commits intomainfrom
release/0.1.5

Conversation

@alexmc2
Copy link
Copy Markdown
Owner

@alexmc2 alexmc2 commented Feb 18, 2026

Summary

This PR finalises 0.1.5 and addresses the r/node feedback with concrete changes across generation, templates, linting, and CLI UX.

Purpose

  • Improve standard npm onboarding (npm create / npm init).
  • Refresh outdated dependencies in the CLI and generated projects.
  • Remove duplicated TypeScript template trees (simple vs mvc).
  • Strengthen linting for async mistakes in TS (await on non-thenables).
  • Fix platform-specific confusion in terminal next-steps output for Postgres setup.

What changed

  • Refactored TS template generation to use layered template roots.
  • Added templates/ts/shared as the common base for TS files.
  • Kept architecture-specific files in templates/ts/simple and templates/ts/mvc as overlays.
  • Updated generator planning/execution to track source template path per planned file.
  • Added post-generation sanity check to fail early if package.json is missing before install.
  • Updated root dependencies and generated template dependency versions.
  • Added root ESLint config and TS-specific rules with proper scoping.
  • Added generated TS tsconfig.eslint.json and updated template ESLint config.
  • Made Postgres terminal setup output OS-aware (linux, darwin, win32).
  • Updated README installation/usage guidance to include npm create and npm init.
  • Updated CHANGELOG.md for 0.1.5.

Key files

  • src/generator/index.ts
  • src/core/types.ts
  • templates/ts/shared/*
  • templates/ts/simple/* (reduced to architecture-specific files)
  • templates/ts/mvc/* (reduced to architecture-specific files)
  • src/cli/index.ts
  • src/cli/output.ts
  • .eslintrc.cjs
  • templates/ts/shared/.eslintrc.cjs.ejs
  • templates/ts/shared/tsconfig.eslint.json.ejs
  • templates/js/simple/package.json.ejs
  • templates/js/mvc/package.json.ejs
  • templates/ts/shared/package.json.ejs
  • README.md
  • CHANGELOG.md

Validation run

  • npm run lint passed
  • npm test passed (unit + integration scaffold tests)
  • npm run build passed

Reviewer focus

  • Confirm template overlay precedence (shared first, architecture override second).
  • Confirm generated TS projects include and use tsconfig.eslint.json correctly.
  • Confirm OS-aware Postgres setup messaging is appropriate on Windows/macOS/Linux.
  • Confirm dependency updates (notably generated express@5, jest@30, typescript-eslint@8) are intentional for new scaffolds.

Impact / compatibility notes

  • Existing previously generated projects are unaffected.
  • Newly generated projects will use newer dependency baselines (including major-version updates).
  • CLI output for Postgres setup now differs by OS to avoid Unix-only commands on Windows.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Release prep for 0.1.5 of the scaffolding CLI, focusing on improving generated TypeScript project composition (shared + overlay templates), updating dependency baselines, tightening linting, and improving CLI UX for Postgres next-steps messaging.

Changes:

  • Refactors TypeScript template generation to layer templates/ts/shared with architecture-specific overlays.
  • Updates CLI output to provide OS-aware Postgres (psql) setup guidance and adjusts tests accordingly.
  • Bumps root + generated-project dependency versions and adds a root ESLint config + lint script.

Reviewed changes

Copilot reviewed 38 out of 59 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/output.test.ts Updates next-steps tests to inject platform and verify Windows/Linux-specific Postgres guidance.
test/integration.generated-projects.test.ts Removes unused expect import after refactor.
templates/ts/simple/tsconfig.json.ejs Removes duplicated TS config from simple variant (moved to shared).
templates/ts/simple/src/utils/getPort.ts.ejs Moves shared TS helper into templates/ts/shared.
templates/ts/simple/src/server.ts.ejs Moves shared TS entrypoint into templates/ts/shared.
templates/ts/simple/src/routes/health.ts.ejs Moves shared TS route into templates/ts/shared.
templates/ts/simple/src/middleware/notFound.ts.ejs Moves shared TS middleware into templates/ts/shared.
templates/ts/simple/src/middleware/errorHandler.ts.ejs Moves shared TS error handler into templates/ts/shared.
templates/ts/simple/src/errors/AppError.ts.ejs Moves shared TS error class into templates/ts/shared.
templates/ts/simple/src/db/pool.ts.ejs Moves shared TS DB pool into templates/ts/shared.
templates/ts/simple/src/app.ts.ejs Moves shared TS app bootstrap into templates/ts/shared.
templates/ts/simple/scripts/dbSetup.js.ejs Moves shared DB setup script into templates/ts/shared.
templates/ts/simple/scripts/dbSeed.js.ejs Moves shared DB seed script into templates/ts/shared.
templates/ts/simple/scripts/dbReset.js.ejs Moves shared DB reset script into templates/ts/shared.
templates/ts/simple/scripts/dbCreate.js.ejs Moves shared DB create script into templates/ts/shared.
templates/ts/simple/jest.config.js.ejs Moves shared Jest config into templates/ts/shared.
templates/ts/simple/db/seed.sql.ejs Moves shared SQL seed into templates/ts/shared.
templates/ts/simple/db/schema.sql.ejs Moves shared SQL schema into templates/ts/shared.
templates/ts/simple/compose.yaml.ejs Moves shared Docker compose into templates/ts/shared.
templates/ts/simple/tests/app.test.ts.ejs Moves shared TS tests into templates/ts/shared.
templates/ts/simple/.gitignore.ejs Moves shared ignore rules into templates/ts/shared.
templates/ts/simple/.eslintrc.cjs.ejs Moves shared TS ESLint config into templates/ts/shared.
templates/ts/simple/.env.example.ejs Moves shared TS env example into templates/ts/shared.
templates/ts/shared/tsconfig.json.ejs Adds shared TS tsconfig.json base for all TS variants.
templates/ts/shared/tsconfig.eslint.json.ejs Adds shared TS ESLint tsconfig enabling linting src + __tests__.
templates/ts/shared/src/utils/getPort.ts.ejs Adds shared TS port parsing helper.
templates/ts/shared/src/server.ts.ejs Adds shared TS server entrypoint.
templates/ts/shared/src/routes/health.ts.ejs Adds shared TS health route.
templates/ts/shared/src/middleware/notFound.ts.ejs Adds shared TS not-found middleware.
templates/ts/shared/src/middleware/errorHandler.ts.ejs Adds shared TS error handler middleware.
templates/ts/shared/src/errors/AppError.ts.ejs Adds shared TS AppError class.
templates/ts/shared/src/db/pool.ts.ejs Adds shared TS Postgres pool module.
templates/ts/shared/src/app.ts.ejs Adds shared TS Express app wiring.
templates/ts/shared/scripts/dbSetup.js.ejs Adds shared DB setup script.
templates/ts/shared/scripts/dbSeed.js.ejs Adds shared DB seed script.
templates/ts/shared/scripts/dbReset.js.ejs Adds shared DB reset script.
templates/ts/shared/scripts/dbCreate.js.ejs Adds shared DB create script.
templates/ts/shared/package.json.ejs Updates generated TS dependency versions and dev tooling baselines.
templates/ts/shared/jest.config.js.ejs Adds shared Jest config for TS templates.
templates/ts/shared/db/seed.sql.ejs Adds shared SQL seed.
templates/ts/shared/db/schema.sql.ejs Adds shared SQL schema.
templates/ts/shared/compose.yaml.ejs Adds shared compose file for TS postgres-docker mode.
templates/ts/shared/tests/app.test.ts.ejs Adds shared TS Supertest-based tests.
templates/ts/shared/.gitignore.ejs Adds shared TS .gitignore.
templates/ts/shared/.eslintrc.cjs.ejs Adds shared TS ESLint config with type-aware linting and await-thenable.
templates/ts/shared/.env.example.ejs Adds shared TS .env.example.
templates/ts/mvc/package.json.ejs Removes duplicated TS MVC package.json (now sourced from shared).
templates/ts/mvc/.eslintrc.cjs.ejs Removes duplicated TS MVC ESLint config (now sourced from shared).
templates/js/simple/package.json.ejs Updates generated JS dependency versions.
templates/js/mvc/package.json.ejs Updates generated JS dependency versions.
src/generator/index.ts Implements multi-root template planning (shared + overlay) and tracks per-file source paths.
src/core/types.ts Extends PlannedFile with templateSourcePath to support overlay sources.
src/cli/output.ts Adds OS-aware Postgres setup messaging and updates printNextSteps signature.
src/cli/index.ts Adds post-generation check to fail early if package.json wasn’t produced.
package.json Bumps version to 0.1.5, adds lint script, and updates dependencies/devDependencies.
package-lock.json Updates lockfile to new dependency graph (incl. eslint + vitest upgrades).
README.md Updates installation guidance to include npm create / npm init workflows.
CHANGELOG.md Adds 0.1.5 changelog entry describing the release changes.
.eslintrc.cjs Adds root ESLint configuration with scoped TypeScript overrides and async linting rule.

@alexmc2 alexmc2 merged commit a7b6cea into main Feb 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants