UNPKG

@julr/tooling-configs

Version:

Shared tooling configs: TSConfig, OXC (oxlint + oxfmt)

126 lines (93 loc) 2.53 kB
<p align="center"> <img src="https://user-images.githubusercontent.com/8337858/194765812-05e19fc8-3820-45c5-8d02-fd838d303200.png"> </p> > [!NOTE] > Looking for ESLint/Prettier support? We now only support OXC (oxlint + oxfmt). Check the [last commit with ESLint/Prettier](https://github.com/Julien-R44/tooling-configs/tree/d7b363f). ## Features - Shared presets for [OXC](https://oxc.rs/) 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: ```bash pnpm dlx @julr/tooling-configs@latest ``` ### Manual install ```bash pnpm add -D oxlint oxfmt @julr/tooling-configs ``` ### OXC (oxlint + oxfmt) #### oxlint ```ts // 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 | ```ts export default defineConfig({ extends: [julrPreset({ adonisjs: true, perfectionist: true })], }) ``` #### oxfmt ```ts // oxfmt.config.ts import { julrPreset } from '@julr/tooling-configs/oxc/fmt' export default julrPreset() ``` You can override any option: ```ts export default julrPreset({ printWidth: 120, semi: true }) ``` Defaults: `printWidth: 100`, `semi: false`, `singleQuote: true`, `trailingComma: 'all'`, `arrowParens: 'avoid'`. #### Scripts ```json { "scripts": { "lint": "oxlint", "lint:fix": "oxlint --fix", "format": "oxfmt --write ." } } ``` ### Tsconfig Node (ESM): ```json { "extends": "@julr/tooling-configs/tsconfigs/tsconfig.node", "compilerOptions": { "rootDir": "./", "outDir": "./build" } } ``` Node Next (ESM + `ts` extensions): ```json { "extends": "@julr/tooling-configs/tsconfigs/tsconfig.node-next", "compilerOptions": { "rootDir": "./", "outDir": "./build" } } ``` Vue: ```json { "extends": "@julr/tooling-configs/tsconfigs/tsconfig.vue", "compilerOptions": { "rootDir": "./", "outDir": "./build" } } ```