feat(generate): accept type and crud options on the resource schematic#3402
Merged
kamilmysliwiec merged 1 commit intonestjs:v12.0.0from Apr 17, 2026
Merged
Conversation
Backports the master-branch fix for nestjs#3229 (PR nestjs#3275) to v12.0.0. The `@nestjs/schematics` resource generator defines `--type` and `--crud` options in its schema.json, but the v12 CLI does not register either flag on the `generate` command. Running: nest g resource users --type rest --crud exits with "error: unknown option '--type'" even though the schematic itself would handle both flags correctly. - register `--type [type]` and `--crud` on the generate command - forward both into the generate action and on to the schematic - only forward `--crud` when explicitly passed (avoid toggling default behavior on users who never opted in) The master-branch PR noted that "no automated tests were added because there are no existing e2e tests for generate resource" — this PR adds a focused unit spec for `GenerateAction` covering forwarding of the new options individually and together.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce?
Bug-fix backport from master to v12.0.0, with added unit tests.
What is the current behavior?
The
@nestjs/schematicsresource generator defines--typeand--crudoptions in itsschema.json. On master the CLI registers and forwards them (see #3275, which closed #3229). On v12.0.0 neither flag is wired up, so:exits with
error: unknown option '--type'even though the schematic itself would consume both flags correctly.What is the new behavior?
--type [type]and--crudon thegeneratecommandGenerateCommandContextand on to the schematic--crudwhen explicitly passed so users who never opted in aren't affectedAfter this PR:
nest g resource users --type rest --crud # Generates src/users/{users.module.ts, users.controller.ts, users.service.ts, dto/, entities/}Additional context
The original master PR noted "No automated tests were added because there are no existing e2e tests for generate resource." This PR adds a focused unit spec (
test/actions/generate.action.spec.ts) covering the new option wiring end-to-end at the action layer — forwarded when set, omitted when undefined/false.Files changed:
commands/generate.command.ts— register--type/--crud, populate contextcommands/context/generate.context.ts— extendGenerateCommandContextactions/generate.action.ts— pushtype/crudschematic optionstest/actions/generate.action.spec.ts— new unit spec (6 cases)Closes #3229 for the v12 line.
Test plan
npm run buildcleannpx vitest run test/actions/generate.action.spec.ts— 6/6 passnpm testlocal: 488 pass, 5 fail — the 5 failures are the pre-existing Windows-only issues intsconfig-paths.hook.spec.ts(tracked separately in test(hooks): normalize emit path separators for windows #3398)