@kin0992/oxc-config
v0.5.0
Published
Shared OXC formatter and lint configuration.
Readme
@kin0992/oxc-config
Shared OXC formatter and lint configuration.
Install
pnpm add -D @kin0992/oxc-config oxfmt oxlintFormatter
// oxfmt.config.ts
import config from '@kin0992/oxc-config/oxfmt';
export default config;Linter flavors
The lint config ships four composable flavors. Pick the one that matches your project type.
| Import path | Use case |
| ------------------------------------ | ----------------------------------------------------- |
| @kin0992/oxc-config/oxlint | Backward-compat alias for core (existing consumers) |
| @kin0992/oxc-config/oxlint/core | Any TypeScript / JS project |
| @kin0992/oxc-config/oxlint/react | React + JSX A11y + React Perf (includes core) |
| @kin0992/oxc-config/oxlint/node | Node.js backends (includes core) |
| @kin0992/oxc-config/oxlint/testing | Test-file overrides — use inside overrides |
Plain TypeScript project
// oxlint.config.ts
import config from '@kin0992/oxc-config/oxlint/core';
export default config;React project
// oxlint.config.ts
import config from '@kin0992/oxc-config/oxlint/react';
export default config;Node.js backend
// oxlint.config.ts
import config from '@kin0992/oxc-config/oxlint/node';
export default config;Node.js backend with separate test rules
// oxlint.config.ts
import config from '@kin0992/oxc-config/oxlint/node';
import testing from '@kin0992/oxc-config/oxlint/testing';
export default {
...config,
overrides: [
...(config.overrides ?? []),
{
files: ['**/*.test.*', '**/*.spec.*', '**/test/**'],
...testing,
},
],
};React project with separate test rules
// oxlint.config.ts
import config from '@kin0992/oxc-config/oxlint/react';
import testing from '@kin0992/oxc-config/oxlint/testing';
export default {
...config,
overrides: [
...(config.overrides ?? []),
{
files: ['**/*.test.*', '**/*.spec.*', '**/test/**'],
...testing,
},
],
};Type-aware rules
Several TypeScript rules in core (and all flavors that extend it) require type information:
typescript/no-floating-promisestypescript/no-misused-promisestypescript/await-thenabletypescript/require-awaittypescript/return-awaittypescript/no-unsafe-argumenttypescript/no-unsafe-assignmenttypescript/no-unsafe-calltypescript/no-unsafe-member-accesstypescript/no-unsafe-returntypescript/no-unnecessary-type-assertiontypescript/no-redundant-type-constituentstypescript/restrict-template-expressionstypescript/switch-exhaustiveness-check
To enable them, pass --tsconfig when running oxlint:
{
"scripts": {
"lint": "oxlint --tsconfig tsconfig.json --fix",
"lint:check": "oxlint --tsconfig tsconfig.json"
}
}If you prefer to skip type-aware rules (faster, no tsconfig required), override them individually in your local oxlint.config.ts:
import config from '@kin0992/oxc-config/oxlint/core';
export default {
...config,
rules: {
...config.rules,
'typescript/no-floating-promises': 'off',
// ... other type-aware rules you want to disable
},
};