Open
Description
4bcdeb8 の変更によりfilepath
としてundefined
やnull
を渡すとpath.normalize
により例外が投げられるようになりました。
空文字や偽物のファイルパスを渡せば回避できますが、filepath
が必須の第一引数なので空文字で回避していいのかが不透明な感じがします。
makeChangeSet(filePath: string, contentText?: string): ChangeSet;
replaceByRule(filePath: string, content?: string): string;
ドキュメントとして明示するのも有効だと思いますが、APIとしてcontext
が第一引数のファイルパス(fs
)に依存しないAPIがあるともっと明確になるかなと思いました。
ユースケース
- ブラウザで動作させる場合
- 標準入力のコンテンツをチェックする場合
- ESLintなどは
-stdin-filename
の標準入力のオプションなどがあったりします cat file.md | prh
のようなケース- SublimeTextなどのエディタプラグインなどで使われているのを見ます
- ESLintなどは
参考実装
- ESLint
- https://github.com/eslint/eslint/blob/ffa021e7696b24722cbbef306d494dd64d7b5215/lib/cli-engine.js#L651
Engine#executeOnText
のfilename
はオプショナルで標準入力の場合は<stdin>
などの擬似的なものを使う
- textlint
- lintのロジックを扱う
@textlint/kernel
はfsに依存しないようにしてる - https://github.com/textlint/textlint/tree/master/packages/textlint-kernel
- lintのロジックを扱う
Metadata
Metadata
Assignees
Labels
No labels