Obrigado pelo interesse em contribuir com o @apiaju/calendar! Este guia explica como participar do projeto.
- Node.js >= 18
- npm
git clone https://github.com/apiaju/calendar.git
cd calendar
npm installnpm run build # compila ESM + CJS + .d.ts em dist/
npm test # roda todos os testes
npm run test:watch # roda testes em modo watchPara rodar um único arquivo de testes:
npx vitest run tests/easter.test.tsAbra uma issue com:
- Descrição do problema
- Versão do pacote
- Código para reproduzir o bug
- Resultado esperado vs. resultado obtido
Abra uma issue descrevendo a melhoria e o caso de uso.
- Faça um fork do repositório
- Crie uma branch para sua alteração (
git checkout -b minha-alteracao) - Faça suas mudanças
- Garanta que os testes passam (
npm test) - Garanta que o build funciona (
npm run build) - Faça o commit das mudanças
- Abra um Pull Request
Os feriados ficam em src/holidays.ts. Algumas regras:
- Feriados fixos: adicione na tabela
FIXED_HOLIDAYScommonth,day,name,typeelevel - Feriados com vigência: use o campo
sincepara indicar o ano a partir do qual o feriado é válido - Feriados móveis: adicione na tabela
MOVABLE_HOLIDAYScom ooffsetem dias a partir da Páscoa - Sempre inclua a referência legislativa (lei que instituiu o feriado) no PR
- Timezone: toda comparação de data deve usar
toAracajuDate(). Nunca use.getDate(),.getMonth()ou.getFullYear()diretamente. - Testes: toda alteração deve incluir testes correspondentes.
- Zero dependências: o pacote não tem dependências em runtime. Não adicione dependências externas.
Este projeto segue o Código de Conduta. Ao participar, espera-se que você siga essas diretrizes.