What problem are you trying to solve?
We can already dynamically export all exports from a file using the wildcard, like this:
export * from './file.js';
In some cases, it would help to be able to export all exports EXCEPT certain exports, or alias some but not others.
Describe the solution you'd like
A syntax I think could work well would be to be able to use the spread syntax for this sort of operation, and/or a *
wildcard after other exports.
To alias some exports but not others, introduce some way to import the "rest" after aliasing some
export {
export1 as firstExport,
export2 as secondExport,
*, // rest (`*` wildcard or similar syntax)
} from './file.js';
…or to exclude certain exports…
Exclude certain exports using exclude
keyword
export * exclude { export1, export2 } from './file.js';
Describe alternatives you've considered
An alternative syntax I considered, but which also does not work, is to import all exports, then exclude the ones I don't want to export via a const
declaration, and then import them separately.
import * as allExports from './file.js';
const {
export1: firstExport,
export2: secondExport,
...rest,
} = allExports;
export { firstExport, secondExport, ...rest };
To reiterate, this alternative DOES NOT work.