/nestjs-command

nestjs-command simplifies creating and managing CLI commands in NestJS applications. It offers an easy way to define and execute commands, streamlining CLI integration and boosting productivity with minimal configuration.

Primary LanguageTypeScript

Hodfords Logo

nestjs-command simplifies creating and managing CLI commands in NestJS applications. It offers an easy way to define and execute commands, streamlining CLI integration and boosting productivity with minimal configuration.

Installation πŸ€–

Install the nestjs-command package with:

npm install @hodfords/nestjs-command --save

Set up in your codebase:

  • src/config/command.config.ts
import { CommandModule } from '@hodfords/nestjs-command';

export const commandConfig = CommandModule.register();

// export const = CommandModule.register(false) if typeorm is disabled
  • src/app.module.ts
import { Module } from '@nestjs/common';
import { CommandModule } from '@hodfords/nestjs-command';

@Module({
    imports: [commandConfig],
    controllers: [],
    providers: []
})
export class AppModule {}
  • src/cli.ts
import { NestFactory } from '@nestjs/core';
import { CommandService } from '@hodfords/nestjs-command';
import { commandConfig } from '~config/command.config';

async function bootstrap() {
    const app = await NestFactory.create(AppModule);
    const commandService: CommandService = app.select(commandConfig).get(CommandService, { strict: true });
    await commandService.exec();
    await app.close();
}

bootstrap();
  • package.json
"wz-command": "wz-command"

Usage πŸš€

Here’s how you can use them. For each type of component, you can use one of the two available command formats: with npm run or directly with wz-command

Make a command

npm run wz-command make-command <file-name> -- --module <module-name>
wz-command make-command <file-name> --module <module-name>

Make a controller

npm run wz-command make-controller <file-name> -- --module <module-name>
wz-command make-controller <file-name> --module <module-name>

Make a dto

npm run wz-command make-dto <file-name> -- --module <module-name>
wz-command make-dto <file-name> --module <module-name>

Make an e2e test

npm run wz-command make-e2e-test <file-name> -- --module <module-name>
wz-command make-e2e-test <file-name> --module <module-name>

Make an entity

npm run wz-command make-entity <file-name> -- --module <module-name>
wz-command make-entity <file-name> --module <module-name>

Make a migration

Create table

npm run wz-command make-migration <file-name> -- --module <module-name> --create=<entity-name>
wz-command make-migration <file-name> --module <module-name> --create=<entity-name>

Update table

npm run wz-command make-migration <file-name> -- --module <module-name> --update=<entity-name>
wz-command make-migration <file-name> --module <module-name> --update=<entity-name>

Make a module

npm run wz-command make-module <module-name>
wz-command make-module <file-name>

Make a repository

npm run wz-command make-repository <file-name> -- --module <module-name>
wz-command make-repository <file-name> --module <module-name>

Make a service

npm run wz-command make-service <file-name> -- --module <module-name>
wz-command make-service <file-name> --module <module-name>

License πŸ“

This project is licensed under the MIT License