/template-typescript-node-package

Quickstart-friendly TypeScript template with comprehensive formatting, linting, releases, testing, and other great tooling built-in.

Primary LanguageTypeScriptMIT LicenseMIT

Template TypeScript Node Package

A quickstart-friendly TypeScript template with comprehensive formatting, linting, releases, testing, and other great tooling built-in. โœจ

All Contributors: 22 ๐Ÿค Codecov Test Coverage Code of Conduct: Enforced ๐Ÿค License: MIT ๐Ÿ“ Sponsor: On GitHub ๐Ÿ’ธ Style: Prettier ๐Ÿงน TypeScript: Strict ๐Ÿ’ช

Note that this template is early stage, opinionated, and not endorsed by the TypeScript team. It sets up a lot of tooling out of the box. Each of the included tools exists for a good reason and provides real value.

If you don't want to use any particular tool, you can always remove it manually.

Getting Started

First make sure you have the following installed:

This repository comes with three script forms to set up an existing or new repository with tooling. Use the corresponding docs page to get started:

Explainer

This template is available for anybody who wants to set up a Node application using TypeScript. It sets up the following tooling for you:

  • All Contributors: Tracks various kinds of contributions and displays them in a nicely formatted table in the README.md.
  • ESLint: Static analysis for JavaScript code, configured with typescript-eslint for TypeScript code and other general-use plugins.
  • Knip: Detects unused files, dependencies, and code exports.
  • Markdownlint: Static analysis for Markdown code.
  • pnpm: Disk-efficient package manager alternative.
  • PR Compliance Action: Checks PRs for compliance such as addressing a linked issue and proper title formatting.
  • Prettier: Opinionated formatting for code, run on file save and as a Git commit hook via husky and lint-staged.
  • release-it: Generates changelogs, bumps the package version, and publishes to GitHub and npm based on conventional commits.
  • Renovate: Keeps dependencies up-to-date with PRs, configured to wait a few days after each update for safety.
  • tsup: Builds output definitions and JavaScript files using esbuild.
  • TypeScript: A typed superset of JavaScript, configured with strict compiler options.
  • Vitest: Fast unit tests, configured with coverage tracking and console-fail-test.

Development

See .github/CONTRIBUTING.md, then .github/DEVELOPMENT.md. Thanks! ๐Ÿ’–

Contributors

Anurag
Anurag

๐Ÿ’ป
Daniel Roe
Daniel Roe

๐Ÿ’ป
Dominik Nowik
Dominik Nowik

๐Ÿ”ง ๐Ÿ’ป
Emerson
Emerson

๐Ÿ’ป
Jeff Wen
Jeff Wen

๐Ÿ’ป
Joe Previte
Joe Previte

๐Ÿ› ๐Ÿ’ป
John Reilly
John Reilly

๐Ÿ’ป
Josh Goldberg
Josh Goldberg

๐Ÿ› ๐Ÿ’ป ๐Ÿšง ๐Ÿ‘€ ๐Ÿ”ง ๐Ÿ“– ๐Ÿš‡ โš ๏ธ
Joรซl Galeran
Joรซl Galeran

๐Ÿ’ป
Kristo Baricevic
Kristo Baricevic

๐Ÿ’ป
Lars Kappert
Lars Kappert

๐Ÿ’ป
Navin Moorthy
Navin Moorthy

๐Ÿ› ๐Ÿ’ป
NazCodeland
NazCodeland

๐Ÿ’ป
Orta Therox
Orta Therox

๐Ÿ’ป
Paul Esch-Laurent
Paul Esch-Laurent

๐Ÿ’ป
Promise Dash
Promise Dash

๐Ÿ’ป
Rebecca Stevens
Rebecca Stevens

๐Ÿ’ป ๐Ÿš‡
Ron Braha
Ron Braha

๐Ÿ’ป ๐ŸŽจ โš ๏ธ
Ron Jean-Francois
Ron Jean-Francois

๐Ÿ’ป ๐Ÿš‡
Sudhansu
Sudhansu

๐Ÿ’ป
Tung Bui (Leo)
Tung Bui (Leo)

๐Ÿ’ป
takanomedev
takanomedev

๐Ÿ’ป