@cityheroes/api-client
v3.1.0
Published
![NPM](https://img.shields.io/npm/l/@gjuchault/typescript-library-starter) ![NPM](https://img.shields.io/npm/v/@gjuchault/typescript-library-starter) ![GitHub Workflow Status](https://github.com/gjuchault/typescript-library-starter/actions/workflows/types
Downloads
40
Readme
Typescript Library Starter
Yet another (opinionated) typescript library starter template.
Opinions and limitations
- Relies as much as possible on each included library's defaults
- Only rely on GitHub Actions
- Do not include documentation generation
Getting started
npx degit gjuchault/typescript-library-starter my-project
or click onUse this template
button on GitHub!cd my-project
npm install
git init
(if you used degit)npm run setup
To enable deployment, you will need to:
- Setup
NPM_TOKEN
secret in GitHub actions (Settings > Secrets > Actions) - Give
GITHUB_TOKEN
write permissions for GitHub releases (Settings > Actions > General > Workflow permissions)
Features
Node.js, npm version
Typescript Library Starter relies on volta to ensure node version to be 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 two builds to support both ESM and CJS.
Commands:
build
: runs typechecking then generates CJS, ESM andd.ts
files in thebuild/
directoryclean
: removes thebuild/
directorytype:dts
: only generatesd.ts
type:check
: only run typecheckingtype:build
: only generates CJS and ESM
Tests
This project uses vitest. The coverage is done through vitest, using c8.
Commands:
test
: runs vitest test runnertest:watch
: runs vitest test runner in watch modetest:coverage
: runs vitest test runner and generates coverage reportstest:docker:login
: logs in to AWS ECR using Dockertest:docker:up:db
: starts the database service using Docker Composetest:docker:up
: starts all services using Docker Composetest:db:sync
: synchronizes the database schema using Docker and Prismatest:ci
: executes commands for continuous integration testing
Test Workflows
Development:
yarn test:docker:up:db
yarn test:db:sync
yarn test:docker:login
yarn test:docker:up
yarn test
CI (Continuous Integration):
yarn test:ci
Format & lint
This template relies on the combination of eslint — through typescript-eslint for linting and prettier for formatting. It also uses cspell to ensure spelling
Commands:
format
: runs prettier with automatic fixingformat:check
: runs prettier without automatic fixing (used in CI)lint
: runs eslint with automatic fixinglint:check
: runs eslint without automatic fixing (used in CI)spell:check
: runs spellchecking
Releasing
Under the hood, this library uses semantic-release and commitizen.
The goal is to avoid manual release process. 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)