v12.17.0 (current LTS)
v14.14.0 (LTS in a few days)
Linux 5.4.0-51-generic
'stream'
What steps will reproduce the bug?
The documentation says:
The stream/promises API provides an alternative set of asynchronous utility functions for streams that return Promise objects rather than using callbacks. The API is accessible via require('stream/promises') or require('stream').promises.
Which is fine. However, when using the ESM syntax it does not work like other APIs like 'fs' or 'dns':
import { promises as fsPromises } from 'fs' // no error thrown
import { promises as dnsPromises } from 'dns' // no error thrown
import { promises as streamPromises } from 'stream'
// ^^^^^^^^
// SyntaxError: The requested module 'stream' does not provide an export named 'promises'
// at ModuleJob._instantiate (internal/modules/esm/module_job.js:98:21)
// at async ModuleJob.run (internal/modules/esm/module_job.js:143:5)
// at async Loader.import (internal/modules/esm/loader.js:165:24)
// at async Object.loadESM (internal/process/esm_loader.js:68:5)
What is the expected behavior?
It should work just like 'fs' or 'dns' promises.
This issue is similar to #21014 or the fix in #32953
What do you see instead?
Throws a SyntaxError.
Additional information
I have made a repo to demonstrate the issue. There are various syntaxes, but 2.js shows the issue pretty well.
v12.17.0 (current LTS)
v14.14.0 (LTS in a few days)
Linux 5.4.0-51-generic
'stream'
What steps will reproduce the bug?
The documentation says:
Which is fine. However, when using the ESM syntax it does not work like other APIs like 'fs' or 'dns':
What is the expected behavior?
It should work just like 'fs' or 'dns' promises.
This issue is similar to #21014 or the fix in #32953
What do you see instead?
Throws a
SyntaxError.Additional information
I have made a repo to demonstrate the issue. There are various syntaxes, but
2.jsshows the issue pretty well.