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

Can’t import stream promises API with ECMAScript Modules #35731

Open
userpixel opened this issue Oct 21, 2020 · 0 comments
Open

Can’t import stream promises API with ECMAScript Modules #35731

userpixel opened this issue Oct 21, 2020 · 0 comments

Comments

@userpixel
Copy link

@userpixel userpixel commented Oct 21, 2020

  • Version:

v12.17.0 (current LTS)
v14.14.0 (LTS in a few days)

  • Platform:

Linux 5.4.0-51-generic

  • Subsystem:

'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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.