feat: fix fs.promises.glob return type to match Node.js API#1162
Conversation
Co-authored-by: streamich <9773803+streamich@users.noreply.github.com>
|
Dear @streamich, first of all, thank you for the memfs package. It made unit tests that operate on the filesystem in my project a lot easier to write and maintain. However, I suffer from the issue that this Pull Request is trying to fix. Before this fix, I had to mock the glob in a nasty way like: Do you have plans to review this Pull Request in the near future? |
|
Hmm, also, glob should be able to accept an array of string inputs as well, which doesn't seem to work properly at the moment. |
|
It looks like this is ready to be merged? Anything we can do to help? |
|
Is there anything I can do to help move this PR forward? I’m really looking forward to seeing this fix merged. |
The
fs.promises.globmethod in memfs was incorrectly returningPromise<string[]>instead of the Node.js standardAsyncIterableIterator<string>. This made it incompatible with the native Node.js API and prevented users from using the standardfor await...ofiteration pattern.What was wrong
What's fixed
Implementation
GlobAsyncIterator: A custom AsyncIterator implementation that yields glob results incrementallywithFileTypesand multiple patternswithFileTypesoption and multiple pattern supportThe fix ensures memfs now perfectly matches the Node.js
fs.promises.globAPI, enabling seamless migration between real and in-memory file systems.Fixes #1161.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.