@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

    Install

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

    DownloadsWeekly Downloads

    3

    Version

    1.4.2

    License

    MIT

    Unpacked Size

    183 kB

    Total Files

    99

    Last publish

    Collaborators

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