EN VI

Javascript - How do I create a custom command to generate files with Node?

2024-03-15 13:00:07
Javascript - How do I create a custom command to generate files with Node?

For my job, we create a lot of small web applications with NodeJS for the backend and Angular for the frontend

Said apps usually involve a lot of CRUDs

With Angular, I can run:

ng generate component 'component-name'

Which generates the ts, html, scss, and spec files

How would I go about creating a custom script to do something similar in NodeJS?

Currently, the project uses ExpressJS and Sequelize, and the structure as follows:

├── src
│   ├── controllers
│   |   ├── product.controller.js
│   ├── models
|   |   ├── product.model.js
│   ├── routes
|   |   ├── product.routes.js
├── index.js
├── package.json

Basically I want to create a script that generates all 3 files when given the name, something like

node generate client

Is it possible?

Solution:

You can simply do this by adding a bash script, and calling it in your package.json.

Step 1: create a bash script generate-controller-model-route.sh in the route folder

#!/bin/bash

file_name=$1

if [[ -z $file_name ]]; then
    echo "Error: file name not received."
    exit 1
fi
controller_folder='./src/controllers'
model_folder='./src/models'
route_folder='./src/routes'

touch "$controller_folder/$file_name.controller.js"
touch "$model_folder/$file_name.model.js"
touch "$route_folder/$file_name.route.js"

Step 2: add the bash script to the package.json (scripts property).

"scripts": {
        "generate": "bash ./api/generate-controller-model-route.sh $1"
}

Step 3: call it with yarn/npm

yarn generate client
Answer

Login


Forgot Your Password?

Create Account


Lost your password? Please enter your email address. You will receive a link to create a new password.

Reset Password

Back to login