npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

qd-srv-boillerplate

v2.13.2

Published

Readme

Introdução

Este repositório é um boillerplate e serve de template para criação de novos serviços.

Requisitos para um serviço novo existir:

  • [ ]: crie o repositório ECR com o seguinte padrão: ${{env.SERVICE_NAME}}_${{env.ENV_TYPE}}_repo

  • [ ]: crie as variaveis de ambiente no parameter store seguindo o padrão: /${{env.ENV_TYPE}}/${{env.SERVICE_NAME}}/VARIABLE_NAME

    Nota: ${{env.SERVICE_NAME}} deve ser o nome do serviço que está no package.json ${{env.ENV_TYPE}} deve ser prod ou stg.

    Criar a infraestrutura inicial

Para criar a infraestrutura inicial, será necessário acesso à AWS e AWS CLI instalado na sua máquina. Importante configurar suas credenciais para o profile querodelivery

Dentro do diretório setup existem dois scripts que faz o trabalho pesado para você.

  • [ ] : read_dotenv_and_create_parameter_store_on_aws.sh que irá criar todas as variáveis necessárias para do serviço dentro do parameter-store da AWS.
  • [ ] : setup.sh que irá criar os repositórios de produção e de stage já com a política de apagar imagens antigas. Atualmente só armazena 3 ultimas imagens.

Exemplo de nome de repositório:

Nome do serviço no package.json qd-srv-boillerplate Tipo de ambiente prod ou stage

Em produção seria:

  • qd-srv-boillerplate_prod_repo

Em stage/dev seria:

  • qd-srv-boillerplate_stage_repo

Exemplo variável dentro do Parameter Store:

Nome da variável: /prod/qd-srv-boillerplate/MONGO_HOST Valor da Variável: mongodb+srv://user:[email protected]/qdprod

Para executar a etapa de setup:

  • [ ]: Entre no diretorio setup e execute: ./setup.sh
  • [ ]: Após criar seu .env execute o omando read_dotenv_and_create_parameter_store_on_aws.sh

Feito esses dois passos, deverá existir o repositório ECR nna AWS e também todas as variáveis para o serviço cadastradas no parameter-store da AWS

Algumas expliccações sobre o padrão adotado:

  • [ ]: O repositório ECR deve seguir o padrão: ${{env.SERVICE_NAME}}_${{env.ENV_TYPE}}_repo

  • [ ]: As variáveis de ambiente no parameter store devem seguir o padrão : /${{env.ENV_TYPE}}/${{env.SERVICE_NAME}}/VARIABLE_NAME

    Nota: ${{env.SERVICE_NAME}} deve ser o nome do serviço que está no package.json ${{env.ENV_TYPE}} deve ser prod ou stage.

qd-srv-boillerplate

Configurações iniciais par um serviço novo

  • [ ]: copie o .env.example para .env
cp ./environments/.env.example .env
  • [ ]: Baixe e instale o terraform: https://releases.hashicorp.com/terraform/0.12.28/terraform_0.12.28_linux_amd64.zip
  • [ ]: Crie o bucket s3 na aws, tfstates-terraform-quero, este bucket será usado para armazenar o estado da infra.
  • [ ]: Configure o arquivo containers_definitions.json com variáveis EXISTENTES no parameter store da AWS.

    Para facilitar, você pode configurar o .env com todas as variáveis e rodar o comando: ./read_dotennv_annd_create_parameter_store_on_aws.sh. Esse comando irá verificar se é NODE_ENV=DEV ou NODE_ENV=PROD e irá criar todas as variáveeis no Parameter Store da AWS.

- Instalação

Nota: é necessária a utilização da versão Node >= 14.0.0

Primeiramente é necessário instalar as dependências do projeto, executando:

yarn install

Página de instalação do Yarn.


- Como executar

Para executar a build do projeto:

yarn build

Para iniciar o projeto utilizando a build:

yarn start

para iniciar o projeto com hot-reload:

yarn watch

- Testando

Para executar todos os testes (unitários, integração e componentes):

yarn test

Para executar os testes unitários:

yarn test:unit

Para executar os testes de integração:

yarn test:int

Para executar os testes de componente:

yarn test:component

- Regras de commit

O projeto utiliza hooks de pré-commit, executando lint e prettier em todo o código. Além disso, é necessário seguir algumas regras na escrita do título do commit.

Exemplos:

Commit de feature

feat: Adicionada função de cronograma

Commit de bugfix

fix: Correção de problema no cronograma

Commit de feature com breaking change breaking_change_console

Para mais exemplos, consulte a documentação.


- Estrutura do projeto

O projeto segue a seguinte estrutura:

- src
  - application
  - configurations
  - contracts
  - domain
  - infrastructure

- application

Contém casos de uso da aplicação. Conhece o domínio e pode usá-lo.

- configurations

Contém arquivos de configuração do serviço. Podem ser utilizados em todas as camadas do projeto.

- contracts

Contém arquivos .yaml com especificação da API.

- domain

Contém regra de negócio. Não conhece camadas externas.

- infrastructure

Camada mais externa da aplicação. Conhece frameworks, databases, requisições http entre outras.


- Infraestrutura

  • CI

    O arquivo sonar-project.properties, define algumas configurações usadas na etapa de quality-gate da pipeline, definindo, local de coverage, testes, exclusão de partes do projeto no cálculo do coverage de testes, entre outros.