fix: Throw an error when readdir is called on a non-directory #492
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This replaces a72ec97 as a fix for #417.
That change meant that calling readdir on a file path would return a single stat entry, for that file. The problem is, to callers that looks like the file is a directory containing itself. This was causing problems in isomorphic-git, as it would readdir
foo.txt
, receive the listing of[ {path: foo.txt', ... } ]
, and then try to readfoo.txt/foo.txt
and get confused that the file doesn't exist.This change instead returns an error equivalent to ENOTDIR to the caller, which matches the behaviour of Node.js and Posix.
cc @KernelDeimos