This package contains a yeoman generator for scaffolding node apps with typescript support.
npm i -g yo
npm i -g @nanogiants/generator-nano-nodegen
yo @nanogiants/nano-nodegen
These commands will prompt you with some questions from which your project gets bootstrapped.
├── .eslintrc.js # eslint config
├── .gitignore # files ignored by git
├── .prettierrc.js # prettier config
├── LICENSE.md
├── CHANGELOG.md
├── README.md
├── docker-compose.yml # compose file for sonarqube and postgress containers
├── jest.config.js # config for your jest testing library
├── nodemon.json # config for your filewatcher
├── package-lock.json
├── package.json # your projects package setup
├── scripts
│ └── report_sonarqube.sh # helper script to report to sonarqube
├── sonar-project.properties # sonarqube configuration file
├── src
│ ├── index.ts # your apps entry point
│ └── lib # your apps logic
│ ├── hello.spec.ts # a sample test file
│ └── hello.ts # a sample ts file
└── tsconfig.json # the typescript configuration file
Enables linting with predefined config. See more at eslint.
If eslint gets selected you will also be asked if you want to install commit hooks with husky and lint your files while staging with lint-staged.
Enables codeformatting with prettier.
Enables testing your code with jest. To test your files run
npm run test
or
npm run test:cov # also creates coverage file to report to sonarqube
If jest gets selected you will also be asked if you want to configure sonarqube. If yes
your project will setup a docker-compose.yml
file and a few scripts to get started.
To start sonarqube run
npm run sonarqube:start
To stop sonarqube run
npm run sonarqube:stop
To report your testcoverage just run
npm run sonarqube:report YOUR_KEY
or
sh ./scripts/report_sonarqube.sh -k YOUR_KEY
If Changelog gets selected you can create a changelog with angular commit guidelines when you update your npm version. Initially you need to call
npm run init-changelog
once, to create the initial changelog file.
It then gets updated everytime you update your version.
To contribute please fork the repository, create a new branch to make changes on and create a pull request into the develop branch of this repository.
Remember to write tests (if needed) to get the features approved.
For feature requests please use the issuetracker and specify your exact needs.