ちょっと前にNeverThrowを触ろうとして、そのESLintプラグインがFlat Configに未対応だったから、そこで遊んでしまった話を書いたけど。
遊んでしまったついでに、フォークしてFlat Configに対応した。
pnpmとかでインストールして
# npm npm install --save-dev @bufferings/eslint-plugin-neverthrow # pnpm pnpm install --save-dev @bufferings/eslint-plugin-neverthrow
こんな感じで設定を書いたらOK
import eslint from '@eslint/js'; import tseslint from 'typescript-eslint'; import neverthrowPlugin from '@bufferings/eslint-plugin-neverthrow'; export default tseslint.config( eslint.configs.recommended, tseslint.configs.recommendedTypeChecked, neverthrowPlugin.configs.recommended, { languageOptions: { parserOptions: { projectService: { allowDefaultProject: ['*.config.*'], }, tsconfigRootDir: import.meta.dirname, }, }, } );
そうすると、中身を取り出していないResultは怒られる。わーい。
利用サンプルはここに置いておいた
注意点
プラグインの書き方がよくわかっていない。Node.jsのバージョン対応とからへんあやしい。
そもそも、Ruleのコアの部分のロジックは読まずに、その周りの対応だけをしたので、ロジックがどうなってるか分かってない。
semantic-releaseを雰囲気で使っている。ちゃんといい感じでリリースできるか分かってない。
まぁ、自分が個人で使うぶんにはこれでいいかな。ちょこっと改良とかできたら面白いかな。