@julr/tooling-configs
v6.1.0
Published
Shared tooling configs: TSConfig, OXC (oxlint + oxfmt)
Readme
[!NOTE] Looking for ESLint/Prettier support? We now only support OXC (oxlint + oxfmt). Check the last commit with ESLint/Prettier.
Features
- Shared presets for OXC tools (oxlint + oxfmt)
- TypeScript configuration presets
- CLI for quick project setup
Usage
[!IMPORTANT] New/updated rules will not be considered as breaking changes. Only API changes will be considered as breaking changes.
CLI installation
Just run this command in your project root directory:
pnpm dlx @julr/tooling-configs@latestManual install
pnpm add -D oxlint oxfmt @julr/tooling-configsOXC (oxlint + oxfmt)
oxlint
// oxlint.config.ts
import { defineConfig } from 'oxlint'
import { julrPreset } from '@julr/tooling-configs/oxc/lint'
export default defineConfig({
extends: [julrPreset()],
})Options:
| Option | Type | Default | Description |
| --------------- | --------- | ------- | --------------------------------------- |
| adonisjs | boolean | false | Enable AdonisJS-specific rules |
| perfectionist | boolean | false | Enable import sorting via perfectionist |
export default defineConfig({
extends: [julrPreset({ adonisjs: true, perfectionist: true })],
})oxfmt
// oxfmt.config.ts
import { julrPreset } from '@julr/tooling-configs/oxc/fmt'
export default julrPreset()You can override any option:
export default julrPreset({ printWidth: 120, semi: true })Defaults: printWidth: 100, semi: false, singleQuote: true, trailingComma: 'all', arrowParens: 'avoid'.
Scripts
{
"scripts": {
"lint": "oxlint",
"lint:fix": "oxlint --fix",
"format": "oxfmt --write ."
}
}Tsconfig
Node (ESM):
{
"extends": "@julr/tooling-configs/tsconfigs/tsconfig.node",
"compilerOptions": {
"rootDir": "./",
"outDir": "./build"
}
}Node Next (ESM + ts extensions):
{
"extends": "@julr/tooling-configs/tsconfigs/tsconfig.node-next",
"compilerOptions": {
"rootDir": "./",
"outDir": "./build"
}
}Vue:
{
"extends": "@julr/tooling-configs/tsconfigs/tsconfig.vue",
"compilerOptions": {
"rootDir": "./",
"outDir": "./build"
}
}