NeverThrowのESLintプラグインをフォークしてFlat Configに対応した

ちょっと前にNeverThrowを触ろうとして、そのESLintプラグインがFlat Configに未対応だったから、そこで遊んでしまった話を書いたけど。

遊んでしまったついでに、フォークしてFlat Configに対応した。

www.npmjs.com

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を雰囲気で使っている。ちゃんといい感じでリリースできるか分かってない。

まぁ、自分が個人で使うぶんにはこれでいいかな。ちょこっと改良とかできたら面白いかな。