Skip to content

Commit 5fa1559

Browse files
authored
feat(babel): export * as ns support (#511)
* declares export * as ns support * check rollup version * oof * refactor: get rollupVersion from this.meta in options hook
1 parent 621768b commit 5fa1559

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

packages/babel/src/index.js

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const unpackOptions = ({
2929
};
3030
};
3131

32-
const unpackInputPluginOptions = ({ skipPreflightCheck = false, ...rest }) => {
32+
const unpackInputPluginOptions = ({ skipPreflightCheck = false, ...rest }, rollupVersion) => {
3333
if (!rest.babelHelpers) {
3434
// eslint-disable-next-line no-console
3535
console.warn(
@@ -45,6 +45,8 @@ const unpackInputPluginOptions = ({ skipPreflightCheck = false, ...rest }) => {
4545
supportsStaticESM: true,
4646
supportsDynamicImport: true,
4747
supportsTopLevelAwait: true,
48+
// todo: remove version checks for 1.20 - 1.25 when we bump peer deps
49+
supportsExportNamespaceFrom: !rollupVersion.match(/^1\.2[0-5]\./),
4850
...rest.caller
4951
}
5052
});
@@ -90,22 +92,30 @@ function createBabelInputPluginFactory(customCallback = returnObject) {
9092
overrides
9193
);
9294

93-
const {
94-
exclude,
95-
extensions,
96-
babelHelpers,
97-
include,
98-
skipPreflightCheck,
99-
...babelOptions
100-
} = unpackInputPluginOptions(pluginOptionsWithOverrides);
101-
102-
const extensionRegExp = new RegExp(`(${extensions.map(escapeRegExpCharacters).join('|')})$`);
103-
const includeExcludeFilter = createFilter(include, exclude);
104-
const filter = (id) => extensionRegExp.test(id) && includeExcludeFilter(id);
105-
95+
let babelHelpers, babelOptions, filter, skipPreflightCheck;
10696
return {
10797
name: 'babel',
10898

99+
options() {
100+
//todo: remove options hook and hoist declarations when version checks are removed
101+
let exclude, include, extensions;
102+
103+
({
104+
exclude,
105+
extensions,
106+
babelHelpers,
107+
include,
108+
skipPreflightCheck,
109+
...babelOptions
110+
} = unpackInputPluginOptions(pluginOptionsWithOverrides, this.meta.rollupVersion));
111+
112+
const extensionRegExp = new RegExp(`(${extensions.map(escapeRegExpCharacters).join('|')})$`);
113+
const includeExcludeFilter = createFilter(include, exclude);
114+
filter = (id) => extensionRegExp.test(id) && includeExcludeFilter(id);
115+
116+
return null;
117+
},
118+
109119
resolveId(id) {
110120
if (id !== HELPERS) {
111121
return null;

0 commit comments

Comments
 (0)