Express π template, including Typesafety π‘, with automatic Swagger OpenApi π docs generator and Zod validator π¦
- π Express NodeJS server
- π Swagger OpenApi definition automatically generated based on your Zod Schemas, served vΓa Swagger UI
- π¦ Zod Validate inputs and outputs, type Req and Res objects automagically, under a Typesafety environment
- π Scalable Project Structure, split features into modules
- π§ͺ Powerful testing suite setup with Vitest and Supertest. Unitary and Integration test included, +90% code coverage report included!
- π Morgan Log retention. Save your request logs automatically with an automated rotating write stream
- π² Pino logger
- β Global Error Handler included
- β€οΈβπ©Ή Monitoring Health check endpoint included
- π Security middlewares provided: Helmet for HTTP header security, CORS setup, and Rate Limiting
- π InversifyJS Dependency Injection
- π Latest stable NodeJS working environment, with .env config variables validated with Zod
- π¨ ESLint & Prettier as linter and formatter
- πΆ Pre-Commit and Commit Husky hooks (Runs linter and formatter before any commit against staged files only!)
- π Commit nomenclature rules following Conventional Commit Format and Commitizen CLI (emoji powered)
- π Release management policy with commit-and-tag-version, including automagically CHANGELOG.md generation, version bumping and GitTags
- π¦ Included npm-check to check for outdated, incorrect, and unused dependencies.
- π₯·π» Included better-npm-audit to check for dependency vulnerabilities
npm ci # Install dependencies
cp .env.example .env # And fill .env file variables
npm run dev # Launch project locally
npm run lint # Run ESLint
npm run format # Run Prettier
git add . # Add files
npm run cz # Commit with Commitizen CLI
npm run release # Bump version and generate CHANGELOG.md
git push --follow-tags # Push changes and GitTag to origin
npm run npm:audit # Check dependency vulnerabilities
npm run npm:check # Check outdated dependencies
npm run build # Compile project
npm run start # Launch
npm run test # Run all tests
npm run test:cov # Run all tests with code coverage report
npm run test:unit # Run unitary tests
npm run test:integration # Run integration tests