Skip to content

NuadaEP/nuada-cli

Repository files navigation

Nuada CLI

Nuada CLI was designed to improve your development experience by using ExpressJS and Mongoose tools.

Nuada CLI v1.0.0 🎉🎉🎉

Installation Guide

To install the Nuada package globally you can run:

$ npm install nuada -g

or

$ yarn global add nuada

Usage

Now the project will bootstrap with nuada-config.json witch going to map the routes of the project. So do not edit, move or delete this file 😉

Create a new project

To start a new project just run:

$ nuada new <project-name>

This command creates an entire folder and pattern structure that will be used to help you to develop. And now it coming up using Typescript 🎉 If you do not specify the project name argument, Nuada CLI will ask you for one.

Create a controller

$ nuada make:controller <controller-name>

This command generates a simple controller and route file to use in your application. You don't have to import your new controller inside router/index.ts, the CLI is going to handle everything for you 🎉.

Create a validator

$ nuada make:validator <validator-name> <field:type>

The make:validator creates a validation file based on the passed parameters.

Create a model

$ nuada make:model <model-name> <field:type>

The make:model creates a simple model file with fields and types based on Mongo type rules. A validation file is also created following the same rules.

Now you can relate your model with some other one just running:

$ nuada make:model <model-name> <field:relational=<another-model-name>>

The relational field type does not generate a validatable field inside the validation file.

Create a full module

$ nuada make:scaffold <scaffold-name> <field:type>

The make:scaffold command generates a controller, model and validator file ready to use. The field:relational= flag also works here 🎉.

Above you can get a list of valid types:

  • String => field:string,
  • Number => field:number
  • Date => field:date
  • Buffer => field:buffer
  • Boolean => field:boolean
  • Mixed => field:mixed
  • Relational => <field:relational=>

Create an Authentication module

$ nuada make:auth

The make:auth command creates a simple authentication structure using JWT ready to use.

Create an HTTP client

$ nuada make:axios

The make:axios command creates an HTTP communication module using Axios.

Create upload configuration

$ nuada make:multer

The make:multer creates an upload config file using Multer.

Don't forget to import the multer config inside the route file that's going to use the upload service.

import Multer from 'multer';

import MulterConfig from '../config/MulterConfig';

and then use as a middleware:

routes.post(
  '/user/:id',
  Multer(MulterConfig).single('image'),
  controllers.UserController.store
);

Some Other Commands

$ nuada version (-v)
$ nuada help (-h)

License

MIT - see LICENSE