@betsys-nestjs/schematics
v1.3.0
Published
NestJS CLI Schematics for Code Generation
Readme
Getting Started With Schematics
This repository contains helper schematics for generating unified structure of NestJS components written in hexagonal architecture and CQRS pattern.
Current Schematics
Component
Generates a new component, prepares modules and nested folders (application, domain, infrastructure, ui)
Running nest g -c @betsys/nestjs-schematics component for a component named example will generate the following structure:
└── src/
└── component/
└── example/
├── application/
│ └── example-application.module.ts
├── domain/
│ └── example-domain.module.ts
├── infrastructure/
│ └── example-infrastructure.module.ts
├── ui/
│ ├── http/
│ │ └── example-http.module.ts
│ └── example-ui.module.ts
└── example.module.tsCQRS
Generates a command or query with a handler.
Running nest g -c @betsys/nestjs-schematics cqrs for a component named example will generate the following structure:
└── src/
└── component/
└── example/
└── application/
├── command/
│ ├── example-command.handler.ts
│ └── example-command.ts
└── query/
├── example-query.handler.ts
└── example-query.tsUsage
To install, simply do:
npm install --save-dev @betsys-nestjs/schematicsThen in the project start generating your code by using the nest-cli.
nest g -c @betsys/nestjs-schematics ${schematic}That's it! The cli wizard will walk you through the configuration.
Monorepo and nested directories
By default the library works for <project-root>/src/component/<component-name> directory structure.
If you are using a monorepo, you can specify the root dir by a rooDir parameter.
└── apps/
└── my-app1/
└── my-app2/
└── src/
└── component/
└── example/
└── application/
├── command/
│ ├── example-command.handler.ts
│ └── example-command.ts
└── query/
├── example-query.handler.ts
└── example-query.tsnest g -c @betsys/nestjs-schematics ${schematic} --rootDir=apps/my-app2This command will generate the files in <project-root>/apps/my-app2/src/ directory.
