@gjuchault/typescript-library-starter v5.3.0
TypeScript Library Starter
Yet another (opinionated) TypeScript library starter template.
If you're looking for a backend service starter, check out my typescript-service-starter
Opinions and limitations
- Relies as much as possible on each included library's defaults
- Only relies on GitHub Actions
- Does not include documentation generation
Getting started
npx degit gjuchault/typescript-library-starter my-projector click on theUse this templatebutton on GitHub!cd my-projectnpm installgit init(if you used degit)node --run setup
To enable deployment, you will need to:
- Set up the
NPM_TOKENsecret in GitHub Actions (Settings > Secrets > Actions) - Give
GITHUB_TOKENwrite permissions for GitHub releases (Settings > Actions > General > Workflow permissions)
Features
Node.js, npm version
TypeScript Library Starter relies on Volta to ensure the Node.js version is consistent across developers. It's also used in the GitHub workflow file.
TypeScript
Leverages esbuild for blazing-fast builds but keeps tsc to generate .d.ts files.
Generates a single ESM build.
Commands:
build: runs type checking, then ESM andd.tsfiles in thebuild/directoryclean: removes thebuild/directorytype:check: runs type checking
Tests
TypeScript Library Starter uses Node.js's native test runner. Coverage is done using c8 but will switch to Node.js's one once out.
Commands:
test: runs test runnertest:watch: runs test runner in watch modetest:coverage: runs test runner and generates coverage reports
Format & lint
This template relies on Biome to do both formatting & linting in no time. It also uses cspell to ensure correct spelling.
Commands:
lint: runs Biome with automatic fixinglint:check: runs Biome without automatic fixing (used in CI)spell:check: runs spell checking
Releasing
Under the hood, this library uses semantic-release and Commitizen.
The goal is to avoid manual release processes. Using semantic-release will automatically create a GitHub release (hence tags) as well as an npm release.
Based on your commit history, semantic-release will automatically create a patch, feature, or breaking release.
Commands:
cz: interactive CLI that helps you generate a proper git commit message, using Commitizensemantic-release: triggers a release (used in CI)
10 months ago
10 months ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago