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

curupiras

v1.1.1

Published

Curupiras é um template back-end que utiliza Express e TypeScript

Downloads

37

Readme

Curupiras (Back-end Template)

Conteúdo

  1. O que é o curupiras?
  2. Requisitos para utilizar o curupiras
  3. O que vem instalado no curupira?
  4. Instalando o Curupiras
  5. Configurando as variáveis de ambiente
  6. Iniciando o Curupiras
  7. Utils

Introdução

O que é o curupiras?

O Curupiras é um template para criação de API's REST utilizando Express e outras tecnologias.

Como surgiu?

Curupiras surgiu da ideia de economizar tempo na criação de novos projetos, seu principal objetivo é eliminar a complexidade de ter que pensar nas estruturas e configurações básicas de cada projeto.

Atualmente o Curupiras está na primeira versão, qualquer pessoa é bem vinda para sugerir alterações na sua estrutura, libs e configurações.

Requisitos

O que vem instalado

Hoje o Curupiras vem com as seguintes libs instaladas:

Dependencias

  • argon2
  • celebrate
  • cors
  • dotenv
  • express
  • express-async-errors
  • jsonwebtoken
  • mysql
  • reflect-metadata
  • tsyringe
  • typeorm

Dependencias de desenvolvimento

  • ts-node-dev
  • tsconfig-paths
  • typescript

Alem das libs ele também vem pré configurado com Dockerfile e docker-compse.yml, já com os containers do MySQL e da própria API

Instalação

Execute o comando npx curupiras nome-do-seu-projeto, pode ser que apareça uma mensagem pedindo para instalar o curupiras, digite "y" ou "s".

Configure suas variáveis de ambiente no arquivo .env.example e depois remova o .example do nome do arquivo.

Caso pretenda utilizar o Docker execute o comando docker-compose up, o projeto já vem pré configurado com o banco de dados e a aplicação. Lembre de acessar o contêiner que está rodando o mysql e criar o database que foi declarado no .env

Lembrando que o TypeORM não cria o banco o banco de dados, sendo necessário já existir um para que o template funcione.

Configurando as variáveis de ambiente

TYPEORM PATHS

| variavel | valor | descrição | |--|--|--| | TYPEORM_ENTITIES | Não alterar | Indica o diretório onde estão os arquivos das entidades com extensão ts | | TYPEORM_MIGRATIONS | Não alterar | Indica o diretório dos arquivos das migrations com extensão ts| | TYPEORM_MIGRATIONS_DIR | Não alterar | Indica o diretório das migrations |

TYPEORM CONFIG

| variavel | valor | descrição | |--|--|--| | TYPEORM_CONNECTION |string|Indica qual é o banco que estamos utilizando (MySQL, PG, MongoDB, etc)| | TYPEORM_LOGGING |boolean|Habilita o modo debug do TypeORM mostrando todas as querys que são executadas| | TYPEORM_SYNCHRONIZE |boolean|Realiza a sincronização de todas as entidades com o banco de dados ao iniciar|

LOCAL DATABASE | TESTING DATABASE | PROD DATABASE | variavel | valor | descrição | |--|--|--| |TYPEORM_HOST |string|url do banco de dados caso esteja executando com Docker utilize o nome database| |TYPEORM_PORT | string|porta do banco| |TYPEORM_USERNAME|string|usuario do banco| |TYPEORM_PASSWORD|string|senha do banco| |TYPEORM_DATABASE|string|nome do banco|

SERVER

| variavel | valor | descrição | |--|--|--| |APP_PORT|number|Porta que vai rodar a API|

Iniciando o Curupiras

Utilizando com docker

Execute o comando docker-compose up

Sem docker

  1. Rode as migrations com o comando npm run migrate
  2. Execute a api com o npm run dev

Utils

Geração automatica chaves RSA256

O projeto já veio com uma geração de chave public e private, o arquivo está no diretório src > shared > config > jwt

AppError

src > shared > errors

Lançador de erros, a baixo um exemplo de como usar

if (!validPassword) throw  new  AppError('Invalid user', 401)

AppError('Mensagem com erro', status code)

O erro lançado vai ser capturado pelo middleware ErrorHandler

ErrorHandler

src > shared > errors

Serve para tratar os erros inesperados e os erros do AppError, também envia no console um erro customizado.