Presets
TypeScript
汎用 TypeScript 向けの8ルール。
使い方
import { defineConfig } from 'oxlint'
import typescript from '@totto2727/oxlint/typescript'
export default defineConfig({ extends: [typescript] })プリセットはプラグインを登録し、以下のルールを error として有効化します。両グループを組み合わせる場合は @totto2727/oxlint/preset を使います。
共通 native baseline
両グループと統合プリセットは Ultracite 7.12.3 の native core 設定と共通 ignore の MIT 固定移植を使います。上流の ultracite/oxlint/core export に対応します。
ライブラリにはこれらの native 設定ソースのみを取り込み、Ultracite CLI パッケージ全体と不要な間接依存を取り込みません。パッケージ監査で確認された未使用 CLI 依存の advisory を回避し、選択した native ルールのポリシーは変えません。実行時とコマンドは Oxlint を直接使います。
このバージョンの確認済み出典は native core 設定 と 公式 Oxlint provider ドキュメント です。
native core の設定とルールを各プリセットのトップレベルに展開し、extends に別のプリセットを追加する方式ではありません。
native core の設定と共通 ignore パターンは保持します。テスト向けの緩和を含め、上流のファイル別 override はすべて除外します。このポリシーはテストファイルを ignore しません。
ライブラリ独自の **/*.gen.ts に対する no-redundant-alias の許可は TypeScript と統合プリセットに残ります。
どちらの順序でグループを合成しても競合しないよう、TypeScript を含む全グループで3つの native ルールを明示的に off にします。
unicorn/prefer-bigint-literals: 公式 Effect のrules/no-bigint-literalsと逆方向の修正になります。preserve-caught-error: native Error.cause を前提とする一方、カスタム Effect 規約は元のエラーを error フィールドに保持します。prefer-const: TypeScript 選択時は、より広いカスタムrules/no-letと宣言の診断が重複します。
カスタムルールの合計34は変わりません。これら3つの調整は native baseline の設定であり、新しいカスタムルールではありません。 React プリセット、type-aware プリセット、Ultracite JavaScript plugins、oxfmt 設定は自動的に取り込みません。 別の統合を個別に選ぶまでは、既存の Oxlint/Vite+ コマンドと formatter 設定を維持します。
収録カスタムルール
- consistent-import-extension: 実行環境に合わせてコードモジュールの拡張子を統一します。
- require-import-extension: モジュール解決を推測せず明示的な拡張子を要求します。
- no-eslint-disable-comments: ESLint ではなく Oxlint の抑制コメントを使います。
- no-jsx-script-tag: JSX のネイティブ script 要素を禁止します。
- no-let: const と明示的なシャドーイングを優先します。
- no-redundant-alias: 既存の値や型を単に改名する別名を避けます。
- no-string-style: JSX の style には文字列ではなくオブジェクトを使います。
- require-disable-reason: Oxlint の抑制に例外の理由を必須とします。
例外
生成された **/*.gen.ts では no-redundant-alias を許可します。互換ルール force-ts-extension は有効化しません。拡張子の統一は既定で ts、必要なら mode js に変更できます。
テストにもアプリケーションソースと同じルールを適用し、上流のテストファイル override は継承しません。利用者が追加する例外は範囲と理由を明確にしてください。