Equipe de FRONT e BACK elaborar uma api rest com NEST desenvolvendo endpoints para o crud.
- Melhorias em testes unitários
- Utilização de variáveis de ambiente
- Melhorias na documentação do Swagger
- Uso de migrations e seeds
- Relatório de cobertura de testes
- Commits e versionamento semantico com hooks
- Integração de 2 microserviços utilizando RabbitMQ
EXTRAS:
- Versionamento Semântico
- Compodoc
- Lint-Staged
- Testes de integração manuais
- Documentação Swagger com versão automática
- Relacionamentos entre entidades com Seeding e onDelete Cascade
# Instalar globalemnte o CLI
$ npm i @nestjs/cli
# Criar projeto novo
$ nest new nest-api
# Entrar na pasta do projeto
$ cd nest-api
# Iniciar o projeto com comando --watch para recompilar
$ npm run start:dev
# Comando que gera toda estrutura de um entity
$ nest g resource
# Código de criação de migrations do banco de dados
$ npm run typeorm migration:create -- --n create-product-table
# Instalação de pacotes para ORM
$ npm run typeorm migration:run
# Instalacao do PG
$ npm install pg --save
# Instalação do swagger
$ npm install --save @nestjs/swagger swagger swagger-ui-express class-validator
# Ao rodar o projeto em ambiente totalmente linux, preciso alterar a permissão do arquivo entrypoint somente 1 vez
$ chmod +x .docker/entrypoint.sh quando ele nao achar o arquivo
# Veja todas as possibilidades do comando nest
$ comando nest mostra os comandos possiveis como resource
# Ao tentar criar um migration e estiver dando permissão negada, melhor recriar a pasta node_modules dentro do ambiente linux
$ rm -rf node_modules / npm cache clear / npm install
# ALEM DE RODAR O DOCKER, PRECISA RODAR O COMANDO PARA TESTAR A API
$ npm run start:dev
commitizen is a command line utility that makes it easier to create commit messages following the conventional commit format specification.
Use git cz
instead of git commit
to use commitizen.
Configuration file: .czrc
.
commitlint checks if your commit messages meet the conventional commit format.
Configuration file: .commitlintrc
.
In general the pattern mostly looks like this:
type(scope?): subject #scope is optional
Are you a good commitizen
?
ESLint is a fully pluggable tool for identifying and reporting on patterns in JavaScript.
Configuration file: .eslintrc.js
.
For more configuration options and details, see the configuration docs.
Husky is a package that helps you create Git hooks easily.
Configuration file: .huskyrc
.
Prettier is an opinionated code formatter.
Configuration file: .prettierrc
.
Ignore file: .prettierignore
.
For more configuration options and details, see the configuration docs.
npm run start
npm run start:dev
npm run start:prod
Run nest generate|g <schematic> <name> [options]
to generate a new Nest Element.
Run npm run build
to build the project. The build artifacts will be stored in the dist/
directory.
npm run test
npm run test:e2e
npm run test:cov