Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: add note about path.basename on Windows #35065

Merged
merged 1 commit into from
Sep 10, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions doc/api/path.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,19 @@ path.basename('/foo/bar/baz/asdf/quux.html', '.html');
// Returns: 'quux'
```

Although Windows usually treats file names, including file extensions, in a
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same is true on macOS. I'm not sure this is a Windows-specific thing. Do we want to change this note to be for all operating systems that treat file names as case-insensitive?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the other hand, maybe it's more of an issue for Windows (since macOS users are kind of used to things being wonky in this regard, whereas Windows users may have a more consistent "paths are case-insensitive" experience)?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't aware of this on macOS. Reading up on it, it seems that this is not an OS thing, but a file system thing on macOS? As in, their defautl fs is case-insensitive, but the OS also supports case-sensitive file systems? That would be a subtle difference to Windows.

We can surely adapt the note if it makes sense. I have absolutely no experience with macOS, so I'd be happy about suggestions.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine leaving the note as-is and updating can happen later if appropriate. But in case someone wants to pitch in.... @nodejs/platform-macos @nodejs/documentation

case-insensitive manner, this function does not. For example, `C:\\foo.html` and
`C:\\foo.HTML` refer to the same file, but `basename` treats the extension as a
case-sensitive string:

```js
path.win32.basename('C:\\foo.html', '.html');
// Returns: 'foo'

path.win32.basename('C:\\foo.HTML', '.html');
// Returns: 'foo.HTML'
```

A [`TypeError`][] is thrown if `path` is not a string or if `ext` is given
and is not a string.

Expand Down