generator-nestjs-mongodb v1.0.7
What This Is:
A command line tool to automatically generate some or all feature set files for NestJS:
- \.module.ts
- \.controller.ts
- \.service.ts
- \.schema.ts
Install:
// Globally:
npm install generator-nestjs-mongodb -g
// Local project only:
npm install generator-nestjs-mongodb
Usage:
(If using with local project only, replace ngenm
below with: ./node_modules/.bin/ngenm
, or alias it)
Note: You will need to have a database configured with NestJS in order to use the repositories. See: https://docs.nestjs.com/techniques/database
Generate a Module / Controller / Service / Repository / schema (or all):
ngenm <name> <options>
This will generate a folder \ within the current directory, and then all specified classes according to the options. See below for examples.
(Tip: Use --prefix to place files within a prefix directory, from the current folder)
(See how to set these up as configuration options in tsconfig.json below)
Specifying schema properties (optional):
ngenm example -m --schema "id:number name:string prop:string"
If you specify a string of properties to the --schema argumenent, the generated schema file will add the given properties to the class definition, using the format propName:propType.
Note: An 'id: number' property will automaticaly be generated, with an @PrimaryGeneratedColumn() decorator, because TypeOrm requires at least this property to exist. You can change this property name by passing a property with a type of 'primary', and it will add the property with the decorate, and a type of 'number'. For example: --schema "someIdentifier:primary"
.
It will also add a @Column() decorator for each other property. propType will be used as the exact class name, but will not be imported (if using a custom class), so you have to add the import yourself, for now.
(Currently does not support adding other decorators (ie. joins/relationships), or custom @Column({}) definition properties, which must be added manually, for now.)
All Options:
Note: If using a configuration file, these command line options will always override the configuration file options.
--schema [...prop:type] Generate the schema file (and optional schema definition) optional
--schema-class <name> Specify a custom class name for the schema optional
--schema-dir <dir> Specify a subdirectory to put the schema in (ie. 'models') optional
--schema-base-class <class> Specify a base class that your schema should extend from optional
--schema-base-dir <dir> Specify the import location for the base class schema optional
-c Generate a Controller for the schema optional default: false
--controller Generate a Controller for the schema optional default: false
-s Generate a Service for the schema optional default: false
--service Generate a Service for the schema optional default: false