{"id":19408929,"url":"https://github.com/4lessandrodev/arquitetura-solid","last_synced_at":"2025-07-04T19:35:01.117Z","repository":{"id":105005366,"uuid":"294530100","full_name":"4lessandrodev/Arquitetura-Solid","owner":"4lessandrodev","description":"Aprofundando os conhecimentos em arquitetura ","archived":false,"fork":false,"pushed_at":"2020-10-07T16:16:55.000Z","size":373,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-13T02:48:16.877Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/4lessandrodev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-10T21:49:53.000Z","updated_at":"2020-10-07T14:38:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"b083a635-30ec-49c6-ab51-549a1d9d9e32","html_url":"https://github.com/4lessandrodev/Arquitetura-Solid","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/4lessandrodev/Arquitetura-Solid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4lessandrodev%2FArquitetura-Solid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4lessandrodev%2FArquitetura-Solid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4lessandrodev%2FArquitetura-Solid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4lessandrodev%2FArquitetura-Solid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/4lessandrodev","download_url":"https://codeload.github.com/4lessandrodev/Arquitetura-Solid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4lessandrodev%2FArquitetura-Solid/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263607168,"owners_count":23487747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T12:08:44.031Z","updated_at":"2025-07-04T19:35:01.094Z","avatar_url":"https://github.com/4lessandrodev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# padrao-solid-tdd\n\n### Projeto padrão em typescript com solid e tdd\n\n- [1]\n\nDependências úteis\n\nGerenciar o padrão de mensagem de commit (fix), (feat), (test) ...\n`npm install -D git-commit-msg-linter`\n\nProjeto em typescript e tipagem\n`npm install -D typescript @types/node`\n\nJavascript Estilo Padrão [Funciona apenas com projetos javascript]\n\u003chttps://standardjs.com/\u003e\n\n- [2]\n\nPara utilizar em projeto typescript utilizar o Eslint\n\u003chttps://github.com/standard/eslint-config-standard-with-typescript#readme\u003e\n\n`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`\n\n- [3]\n\nConfigurar o eslint-whit-standard\ncriar um arquivo de configuração na raiz do projeto\nnome do arquivo: .eslintrc.json\n\n```json\n{\n  \"extends\": \"standard-with-typescript\",\n  \"parserOptions\": {\n    \"project\":\"./tsconfig.json\"\n  }\n}\n```\n\n- [4]\n\nCriar o eslint ignore\n.eslintignore\nInserir a pasta node_modules e dist para serem ignorados\n\n- [5]\n\nInstalar o hysky para usar hooks e validar os códigos antes de realizar um commit\n\n\u003chttps://www.npmjs.com/package/husky\u003e\n`npm install husky`\n\nCriar arquivo de configuração para o husky\nnome do arquivo .huskyrc.json\n\n```json\n{\n    \"hooks\":{\n        \"pre-commit\": \"lint-staged\"\n    }\n}\n```\n\n- [6]\n\nhusky trabalha em conjunto com outra biblioteca lint-staged, o que permite validar apenas os arquivos que estão na stage\n\u003chttps://www.npmjs.com/package/lint-staged\u003e\n\n`npm install lint-staged`\n\nApos intalar criar na raiz do projeto o arquivo de configuração\n.lintstagedrc.json\n\n```json\n{\n    \"*.ts\": [\n     \"eslint 'src/**' --fix\",\n     \"npm run test:staged\"\n    ]\n}\n```\n\n- [7]\n\nInstalar o jest para realizar os testes\n\n`npm install -D jest @types/jest ts-jest`\n\nInicializar o jest no projeto se tiver o jest instalado de forma global\n\n`npm install jest --global`\n`jest --init`\n\nAjustar o arquivo de configuração do jest\n\njest.config.js\n\n```javascript\nmodule.exports = {\n  collectCoverageFrom: ['\u003crootDir\u003e/src/**/*.test.ts'],\n  coverageDirectory: 'coverage',\n  coverageProvider: 'v8',\n  roots: [\n    '\u003crootDir\u003e/src'\n  ],\n  testEnvironment: 'node',\n  transform: {\n    '.+\\\\.ts$': 'ts-jest'\n  }\n}\n```\n\n- [8]\n\nCrie um arquivo de configuração do typescript\n`npx tsc --init`\n\n```json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2019\",\n    \"module\": \"commonjs\",\n    \"allowJs\": true,\n    \"outDir\": \"./dist\",\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"forceConsistentCasingInFileNames\": true\n  }\n}\n```\n\nCriar a tag de testes no package.json\n\n```json\n  \"scripts\": {\n    \"test\": \"jest\",\n    \"test:staged\":\"jest\"\n  },\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4lessandrodev%2Farquitetura-solid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F4lessandrodev%2Farquitetura-solid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4lessandrodev%2Farquitetura-solid/lists"}