@astro-my/generator-astro-nodejs

1.4.2 • Public • Published

Astro Generator NodeJS

Yeoman generator for building RESTful APIs and microservices using Node.js, ExpressJS and Docker support, and fullstack service with ReactJS, Redux, and Redux Observable.

Server Features

  • No transpilers, just vanilla javascript
  • ES2017 latest features like Async/Await
  • CORS enabled
  • Uses yarn
  • Express
  • Consistent coding styles with editorconfig
  • Docker support
  • Uses helmet to set some HTTP headers for security
  • Load environment variables from .env files with dotenv
  • Request validation with joi
  • Gzip compression with compression
  • Linting with eslint with eslint-config-astro
  • Tests with jest along with coverage
  • Git hooks with husky
  • Logging with winston, and winston-cloudwatch for production log stream
  • API documentation geratorion with apidoc
  • Monitoring with pm2
  • Startup boot tasks that can be used for data migrations or pre startup task runner.
  • ORM using Sequelize (optional) sequelize with docker-compose migrations
  • HTTP using axios with retry axios

Requirements

Getting Started

Install:

npm install -g yo generator-astro-nodejs

Generate a new project:

yo astro-nodejs

Server Side Generator

Generate a new API:

yo astro:api

Generate a new middleware:

yo astro:middleware

Generate a new service:

yo astro:service

Generate a new utility:

yo astro:util

Generate a new boot task:

yo astro:boot

Set environment variables:

cp .env.example .env

Running Locally

yarn dev

Running in Production

yarn start

Lint

# lint code with ESLint
yarn lint

# try to fix ESLint errors
yarn lint:fix

# lint and watch for changes
yarn lint:watch

Sequelize Migrations (optional)

yarn db:migrate

# to undo the migration

yarn db:migrate:undo

Test

# run all tests with Jest with coverage
yarn test

# run unit tests
yarn test:unit

# run integration tests
yarn test:integration

# run all tests and watch for changes
yarn test:watch

Validate

# run lint and tests
yarn validate

Logs

# show logs in production
pm2 logs

Documentation

# generate and open api documentation
yarn docs

Docker

# run container locally
yarn docker:dev
or
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

# run container in production
yarn docker:prod
or
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

# run tests
yarn docker:test
or
docker-compose -f docker-compose.yml -f docker-compose.test.yml up

Credit

This project is forked from Suhendra Ahmad

License

MIT License - Jin

Dependents (0)

Package Sidebar

Install

npm i @astro-my/generator-astro-nodejs

Weekly Downloads

0

Version

1.4.2

License

MIT

Unpacked Size

183 kB

Total Files

99

Last publish

Collaborators

  • mindeeyap
  • dpapamon
  • marcushew
  • psychocoding
  • stephenastro
  • azanium
  • ankitz
  • stuti