Qodly Datasources
Getting started
git clone git@git-ps.wakanda.io:4d/web-studio/qodly-ds.git
on GitHub!cd qodly-ds
npm install
npm run setup
Features
Node.js, npm version
This project relies on volta to ensure node version to be consistent across developers. It's also used in the GitHub/Gitlab 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 and d.ts
files in the build/
directoryclean
: removes the build/
directorytype:dts
: only generates d.ts
type:check
: only run typecheckingtype:build
: only generates CJS and ESM
Tests
The 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 reports
Format & lint
This project 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)