typescriptでunknownなものをensureするライブラリでfabian-hiller/valibotがある。
これがdenoでも動くので、たまに使っているのだが、拡張子なしのimport
をたまに残したままリリースするので、壊れる問題がある。
eslintでなんとかしようとしたけど無理だったので調査メモを残す。
- eslintの
import/extensions
の設定はすでにある- https://github.com/fabian-hiller/valibot/blob/main/library/.eslintrc.cjs#L17
- このeslintはCIで通ってる
- https://github.com/fabian-hiller/valibot/actions/runs/7643117820/job/20824388394
このimport/extensions
の設定は問題なかった(手元で小さいprojectを作ってやってみたが、エラーが出た)
調べてみると、どうやらtype
のspecifierがついたimport
| export
のときだけ、拡張子のruleを無視しているようだった。
- https://github.com/import-js/eslint-plugin-import/blob/7a21f7e10f18c04473faadca94928af6b8e28009/src/rules/extensions.js#L171
typescriptのresolveの責務はeslint-import-resolver-typescript
が持つとのこと: https://github.com/import-js/eslint-plugin-import/pull/2270
ref: https://github.com/import-js/eslint-plugin-import/issues/2530