qlab-node
v2.0.0
Published
QLab API interface for Node
Downloads
6
Maintainers
Readme
QLab Node API
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
- Set up the
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
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 andd.ts
files in thebuild/
directoryclean
: removes thebuild/
directorytype:dts
: only generatesd.ts
type:check
: only runs type checkingtype:build
: only generates ESM
Tests
QLab Node API uses Vitest. 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 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 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 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)