Boilerplate for a TypeScript Node service
- TypeScript configuration
ts-jest
setup for automated testing- ESLint rules &
editorconfig
for linting - Prettier and ESLint for deterministic code formatting
- CI - build, lint & test
- GitHub Releases generated with automatic changelogs populated via a configurable template
- Dependabot configuration
- VSCode settings
- Modern JS compilation target (native modules)
- PM2 ecosystem file
First, determine what kind of semantic versioning bump this release will require. Updates should fall into one of three categories: major
(new functionality with breaking changes) minor
(new functionality without breaking changes) or patch
(backwards compatible bug fixes).
To publish a new release, checkout the make sure your git repository is clean and run one of the following commands:
npm run release:major
(new functionality with breaking changes)npm run release:minor
(new functionality without breaking changes)npm run release:patch
(backwards compatible bug fixes)
Running any one of these will:
- Increment the version number in
package.json
(andpackage-lock.json
if available) - Create a git tag with the new version number
- Push these changes to GitHub, which triggers the
release
workflow in GitHub Actions - The
release
workflow then creates a new GitHub release with changelog automatically populated with all PRs and commits since the last version