A progressive Node.js framework for building efficient and scalable server-side applications.
Nest framework TypeScript starter repository.
$ npm install
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.
- Author - Kamil Myśliwiec
- Website - https://nestjs.com
- Twitter - @nestframework
Nest is MIT licensed.
Configurar o path para que o jest possa enxergar o '@/' como caminho relativo de pasta Uma vez configurado os paths no tsconfig é possível "importar" essa referência para dentro do arquivo de configuração do jest
## configuração realizada no tsconfig
"compilerOptions: { "baseUrl": "./", "paths": { "@/*": ["./src/*"] } }"
## adcionando configurações no jest
import { pathsToModuleNameMapper } from 'ts-jest';
import { compilerOptions } from './tsconfig.json';
export default {
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, {
prefix: '<rootDir>/',
}),
}
-
Arquivo de variaveis de ambiente: Utilizando o ConfigModule.forRoot() no Nest por padrão ele considera o arquivo dotenv, por isso para criar ambientes personalizados (customizados) é preciso alterar as configurações do ConfigModule
-
Boas práticas para caotura de enviroments: Ao iniciar um serviço para fazer que a variavel de ambiente seja capturada corretamente deve-se apontar o ambiente no script inicializador:
"start:dev": NODE_ENV=deevlopment nest start --watch
Para ambiente de testes não há a necessidade de atribuir o ambiente, por padrão ele entenderá que é teste
-
A ideia é que qualquer informação da entidade só possa ser manipulada pela propria entidade através de seus próprios métodos.
-
Ao criar um método com propriedade readonly não é possível atribuír valor para ela, para isso é necessário criar setters que realizem essa ação
-
Validações das Entidades: As regras crusciais da aplicação (Regras de negócios) estão na camada de domímio e precisamos garantir a consistencia dessas informações.
-
Object.assigin(this, data): Atribui para a instancia os dados que estao sendo recebidas no construtor