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.
Changelog Entry
Description
cldr-data-downloader
we forked and ported to ESM earlier in PR #3998 wasn't working on Windows.Under Node.js, there are two file path scheme:
C:\Users\...
);file:///C:/Users/...
).We mixed them up in the port. It was broken-but-working on Linux because we are using the path as a relative. However, under Windows, it exposed the issue.
Design
We prefer OS native file path when passing the path externally, say, from
cldr-data
package tocldr-data-downloader
package.Internally, it depends. Because
mkdir
and otherfs
functions prefer OS native file path.There is an utility function named
isUrl
. It is supposed to check if the path is a URL or OS native file path. However, it considerC:\Users\...
is a URL, instead of OS native file path. We fixed it.In the future, we should consider adding a PR validation pipeline that runs on Windows, in addition to Linux.
Specific Changes
index.js
andutil.js
incldr-data-downloader
to handle file path correctlyI have added tests and executed them locallyCHANGELOG.md
I have updated documentationReview Checklist
Accessibility reviewed (tab order, content readability, alt text, color contrast)Browser and platform compatibilities reviewedCSS styles reviewed (minimal rules, noz-index
)Documents reviewed (docs, samples, live demo)Internationalization reviewed (strings, unit formatting)package.json
andpackage-lock.json
reviewedSecurity reviewed (no data URIs, check for nonce leak)Tests reviewed (coverage, legitimacy)