@percolate/kona
Kona is set of scripts and configs used to provide a consistent dev experience across NodeJS repos.
kona <command>
Commands:
kona config Print `.konarc` including defaults
kona commit [files..] Commit message prompter (commitizen)
kona coverage Check diff coverage (bypass with "[skip coverage]" in latest commit message)
kona lint [files..] Apply ESLint and Prettier
kona test [TestPathPattern] Jest (simplified)
kona ts [path..] Type check with TypeScript
kona verify Verify repo setup and dependencies
Options:
--version Show version number [boolean]
-h, --help Show help [boolean]
Installation
yarn add @percolate/kona --dev
npx kona -h
Configure Jest
@percolate/kona provides a jest config setup specifically for npx kona test, npx kona coverage, and CI.
You'll need to provide the following jest config in your repo's root or each monorepo packages.
const { jest } = require('@percolate/kona')
module.exports = {
...jest,
}
Visit src/jest.ts to see full configuration.
CI
At Percolate, we enforce the following across all NodeJS repos in our CI:
npx kona verify
npx kona commit validate
npx kona ts
npx kona lint
npx kona test --coverage && npx kona coverage
It's also be a good idea to provide NPM scripts as aliases more familiar to devs:
{
"scripts": {
"coverage": "kona test --coverage && kona coverage",
"lint": "kona lint",
"test": "kona test --watch",
"types": "kona ts"
}
}
.konarc
If you'd like to override kona's default values (see npx kona config), create a JSON file .konarc to the root of your repo.
Visit src/config.ts for more details.
You can access your kona's config with your values programmatically.
import { config } from '@percolate/kona'
console.log(config)
Configs
Kona ships with commonly used static configs (ex. .vscode/settings.json, tsconfig.json...).
They are located in configs/.
{
"extends": "@percolate/kona/configs/tsconfig.json"
}
ln -s node_modules/@percolate/kona/configs/.vscode .vscode
Development
yarn watch
yarn run for all options.
See root README.md