Project template for TypeScript libraries
- TypeScript
- Strict mode
- All strict flags not included in strict mode
- Target ES 2018 which Node as low as version 10 has good support for (kangax compat table)
.tsbuildinfo
cache setup, output discretely intonode_modules/.cache
- Separate
tsconfig.json
fortests
andsrc
respectively
jest
for testing- Setup with
ts-jest
- Handy watch mode plugin
jest-watch-typeahead
jest.config.ts
for type safe & intellisense configuration!
- Setup with
dripip
for release management- Simple succinct friendly low-barrier issue templates
- Emojis
✈️ - Feature / bug / docs / something-else
- Config to display discussions link right in new issue type listing UI
- Emojis
- Prettier for code formating
- Prisma Labs config preset, 110 line width
- npm scripts for development lifecycle
clean
to remove cache files and distbuild
that runsclean
beforehandprepublishOnly
that runsbuild
beforehandformat
to quickly run prttier over whole codebase
- CI with GitHub Actions
- Separate trunk and pull-request workflows.
- Automated trunk and PR testing across matrix of mac/linux/windows OSes and Node 12/14
- Automated preview releases on trunk commits
- OS Matrix
- Renovate configuration
- JSON Schema setup for optimal intellisense
- Setup a repo secret called
NPM_TOKEN
containing an npm token for CI package publishing. - Adjust
.github/ISSUE_TEMPLATE/config.yml
to point to your repo discussions URL (or whever else you want!) - Uncomment the trunk publishing in
.github/workflows/trunk.yml
- Search-replace all instances of
jasonkuhrt/project-lib-typescript
to<your org>/<your repo>
- Update your GitHub org's label-sync repo to include config for your new repo, assuming your org has such a thing. For example for Prisma Labs: prisma-labs/label-sync.