@zgeoff/oxlint-config
v0.0.4
Published
Shareable oxlint config: strict categories, house-style rules, and a custom JS plugin
Readme
@zgeoff/oxlint-config
Shareable oxlint config: every category at error,
restriction-rule cherry-picks, comment-style enforcement via @stylistic, and a bundled JS plugin
(zgeoff/* rules) banning shapes no native oxlint rule can express — top-level arrows, nested
function declarations, bare named exports, destructured and inline-typed parameters, ternary and
await arguments, awaits hidden inside a control-flow condition or a &&/||/?? chain, and
single-line /** … */ blocks (auto-fixed to multi-line; inline @type/@lends casts exempt).
Usage
bun add -d @zgeoff/oxlint-config oxlint @stylistic/eslint-pluginExtend it from .oxlintrc.json — extends resolves file paths only, so point at the file inside
node_modules:
{
"extends": ["./node_modules/@zgeoff/oxlint-config/oxlintrc.json"],
// ignorePatterns don't propagate through extends — each consumer declares
// its own (oxlint also honors .gitignore)
"ignorePatterns": ["**/node_modules/**", "**/dist/**", "**/*.json"],
}Or import the config object in oxlint.config.ts:
import config from '@zgeoff/oxlint-config';The plugin is addressable on its own at @zgeoff/oxlint-config/plugin for configs that want the
zgeoff/* rules without the rest.
Notes
- The config enables the
typescript,unicorn,oxc,import, andpromiseplugins and loads@stylistic/eslint-pluginthroughjsPlugins. oxlint resolvesjsPluginsspecifiers from the project root, not from the config file that names them — so@stylistic/eslint-pluginmust be a direct dependency of the consuming project. Hoisting package managers (bun's default linker, npm) resolve it transitively anyway, but isolated layouts (pnpm,bun install --linker isolated) fail withCannot find module '@stylistic/eslint-plugin'unless it's installed directly. - Type-aware rules activate under
oxlint --type-aware(requiresoxlint-tsgolint); the config works without it.
