/gym_server

Primary LanguageTypeScript

Gym

Projeto para cadastro dos clientes em uma academia.

Dependencys

  • Bcryptjs
$ npm i bcryptjs

# Tipagens do Bcryptjs
$ npm i @types/bcryptjs -D
  • Commitizen
$ npm i commitizen -D

# Configuração do Commitizen
$ npx commitizen init cz-conventional-changelog --save-dev --save-exact

Atualizar .git/hooks/prepare-commit-msg com o código:

#!/bin/bash
exec < /dev/tty && node_modules/.bin/cz --hook || true
  • Dotenv
$ npm i dotenv
  • ESLint
$ npm i eslint -D

# Instalando o plugin ESLint da Rocketseat para formatação do código
$ npm i @rocketseat/eslint-config -D

# Configuração do ESlint (opcional)
$ npx eslint --init
  • Faker-js
# Lib para gerar dados fictícios
$ npm i @faker-js/faker -D
  • Fastify
$ npm i fastify
  • Handlebars
# Template engine
$ npm i handlebars
  • Nodemailer
# Envio de e-mails (Testes)
$ npm i nodemailer
  • Prisma
# Instalação do Prisma
$ npm i prisma -D

$ npm i @prisma/client

# Inicializar o Prisma gerando a pasta Prisma
$ npx prisma init
  • Resend
# Lib para envio de e-mails (Produção)
$ npm i resend
  • Semantic-release
# Instalação da dependência
$ npm i semantic-release -D

# Plugins adicionais
$ npm i @semantic-release/git @semantic-release/changelog -D
  • Supertest
# Realiza as chamadas HTTP dos testes para a aplicação sem a necessidade de colocar a aplicação no ar
$ npm i supertest @types/supertest -D
  • Swagger
# Plugin do Fastify para criar documentação da API com Swagger
$ npm i @fastify/swagger
  • TSyringe
# Instalação Tsyringe para injeção automatica de dependências
$ npm i tsyringe

# Necessário instalar o `reflect-metadata`
$ npm i reflect-metadata
  • Modificar o tsconfig.json para incluir as seguintes configurações:
{
  "compilerOptions": {
    ...
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
    ...
  }
}
  • Configurações do app.ts para o funcionamento do tsyringe:
// Deve ser importada na primeira linha do arquivo
import 'reflect-metadata'
...
import '@infra/container'
  • TypeScript
# Instalação do TypeScript e das tipagens para node
$ npm i typescript @types/node -D

# Inicializando o TypeScript
$ npx tsc --init

# Permite que o node execute código TypeScript
$ npm i tsx -D

# Realiza a conversão do código de TypeScrip para JavaScript (build)
$ npm i tsup -D
  • Vitest
# Instalação do Vitest
$ npm i vitest -D

# Plugin para que o vitest consiga entender os paths configurados no tsconfig
$ npm i vite-tsconfig-paths -D
  • Zod
$ npm i zod

Commads

# Certifique-se de que todos os pacotes estão atualizados para versões compatíveis.
$ npm outdated

# Atualizar as dependências
$ npm update