https://github.com/4lessandrodev/arquitetura-solid
Aprofundando os conhecimentos em arquitetura
https://github.com/4lessandrodev/arquitetura-solid
Last synced: 10 months ago
JSON representation
Aprofundando os conhecimentos em arquitetura
- Host: GitHub
- URL: https://github.com/4lessandrodev/arquitetura-solid
- Owner: 4lessandrodev
- Created: 2020-09-10T21:49:53.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-10-07T16:16:55.000Z (over 5 years ago)
- Last Synced: 2025-06-13T02:48:16.877Z (11 months ago)
- Language: TypeScript
- Size: 364 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# padrao-solid-tdd
### Projeto padrão em typescript com solid e tdd
- [1]
Dependências úteis
Gerenciar o padrão de mensagem de commit (fix), (feat), (test) ...
`npm install -D git-commit-msg-linter`
Projeto em typescript e tipagem
`npm install -D typescript @types/node`
Javascript Estilo Padrão [Funciona apenas com projetos javascript]
- [2]
Para utilizar em projeto typescript utilizar o Eslint
`npm install --save-dev eslint@7 eslint-plugin-standard@4 eslint-plugin-promise@4 eslint-plugin-import@2 eslint-plugin-node@11 @typescript-eslint/eslint-plugin@4 eslint-config-standard-with-typescript`
- [3]
Configurar o eslint-whit-standard
criar um arquivo de configuração na raiz do projeto
nome do arquivo: .eslintrc.json
```json
{
"extends": "standard-with-typescript",
"parserOptions": {
"project":"./tsconfig.json"
}
}
```
- [4]
Criar o eslint ignore
.eslintignore
Inserir a pasta node_modules e dist para serem ignorados
- [5]
Instalar o hysky para usar hooks e validar os códigos antes de realizar um commit
`npm install husky`
Criar arquivo de configuração para o husky
nome do arquivo .huskyrc.json
```json
{
"hooks":{
"pre-commit": "lint-staged"
}
}
```
- [6]
husky trabalha em conjunto com outra biblioteca lint-staged, o que permite validar apenas os arquivos que estão na stage
`npm install lint-staged`
Apos intalar criar na raiz do projeto o arquivo de configuração
.lintstagedrc.json
```json
{
"*.ts": [
"eslint 'src/**' --fix",
"npm run test:staged"
]
}
```
- [7]
Instalar o jest para realizar os testes
`npm install -D jest @types/jest ts-jest`
Inicializar o jest no projeto se tiver o jest instalado de forma global
`npm install jest --global`
`jest --init`
Ajustar o arquivo de configuração do jest
jest.config.js
```javascript
module.exports = {
collectCoverageFrom: ['/src/**/*.test.ts'],
coverageDirectory: 'coverage',
coverageProvider: 'v8',
roots: [
'/src'
],
testEnvironment: 'node',
transform: {
'.+\\.ts$': 'ts-jest'
}
}
```
- [8]
Crie um arquivo de configuração do typescript
`npx tsc --init`
```json
{
"compilerOptions": {
"target": "ES2019",
"module": "commonjs",
"allowJs": true,
"outDir": "./dist",
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true
}
}
```
Criar a tag de testes no package.json
```json
"scripts": {
"test": "jest",
"test:staged":"jest"
},
```