@leandrowkz/ts-backend
v1.1.6
Published
Typescript template for backend apps/packages.
Maintainers
Readme
📦 TypeScript Node template
This is a TS template for backend packages/apps. It provides a working set of
packages/resources ready to be used. Just put your code under src and you'll
be ready to go.
Packages
- TypeScript 5+
- TSConfig Paths (transforms
import x from '@/sample'; @/ => src/) - Node 19+
- NPM 7+
- Commitlint
- Eslint (typescript)
- Prettier (on eslint)
- Jest (with ts-jest)
- Editorconfig
- Husky hooks
- Semantic-release (automatically publishes this repo on NPM)
Git hooks
This repo comes with 3 git hooks handled by Husky hooks:
commit-msgwhich checks if commit messages are under conventional commit formatpre-commitwhich runsnpm run lint:checkto validate code formatting before actual committingpre-pushwhich runsnpm run testbefore pushing code
Conventional commit messages
This repo uses commitlint to validate and standardize commit
messages. This is also necessary for the release/publish step, which looks for this kind of message
format to detect the correct version changes. Make sure you use it on your work, or let the
commit-msg hook validate it for you. Conventional Commits is a good complementary read also.
All you have to do is commit like those below examples:
// see formats on https://commitlint.js.org/#/concepts-commit-conventions
$ git commit -m 'feat: this change is related to a feature'
$ git commit -m 'refactor: adjust something'
$ git commit -m 'docs: change on README.md'
$ git commit -m 'chore: update CI'Automatic releases and publishing as NPM package
This repo has all things necessary to be published as a public package on NPM. All you need to do is to:
- Create a NPM access token (https://docs.npmjs.com/creating-and-viewing-access-tokens)
- Create a repository secret called
NPM_TOKENwith the value above - Create a Github personal access token (https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-personal-access-token-classic)
- Create a repository secret called
GH_TOKENwith the value above - Update the property
nameandrepositoryonpackage.json - That's it! Now every time a push/merge is made on branch
maina release pipeline will run, building the application, generating a new tag to the repo, bumpingpackage.jsonversion on branchmainaccording to the last commit change (check the.releaserc.js) and publishing this to NPM, according to the config set onpackage.jsonpublishConfig.
