0.0.5 • Published 7 months ago

qlab-node v0.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

QLab Node API

Opinions and limitations

  1. Relies as much as possible on each included library's defaults
  2. Only relies on GitHub Actions
  3. Does not include documentation generation

Getting started

  1. Set up the NPM_TOKEN secret in GitHub Actions (Settings > Secrets > Actions)
  2. Give GITHUB_TOKEN write permissions for GitHub releases (Settings > Actions > General > Workflow permissions)

Features

Node.js, npm version

QLab Node API 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 and d.ts files in the build/ directory
  • clean: removes the build/ directory
  • type:dts: only generates d.ts
  • type:check: only runs type checking
  • type:build: only generates ESM

Tests

QLab Node API uses Vitest. Coverage is done through Vitest, using c8.

Commands:

  • test: runs Vitest test runner
  • test:watch: runs Vitest test runner in watch mode
  • test:coverage: runs Vitest test runner and generates coverage reports

Format & lint

QLab Node API relies on the combination of ESLint — through TypeScript-ESLint for linting, and Prettier for formatting. It also uses cspell to ensure correct spelling.

Commands:

  • format: runs Prettier with automatic fixing
  • format:check: runs Prettier without automatic fixing (used in CI)
  • lint: runs ESLint with automatic fixing
  • lint:check: runs ESLint 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 Commitizen
  • semantic-release: triggers a release (used in CI)
0.0.5

7 months ago

0.0.4

7 months ago

0.0.3

7 months ago

0.0.2

7 months ago

0.0.1

7 months ago