-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.babelrc.js
45 lines (35 loc) · 896 Bytes
/
.babelrc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
let requiredPolyfills = new Set();
let checkPolyfillsTimeout;
function checkRequiredPolyfills() {
if (requiredPolyfills.size === 0) return;
console.error(
'\nThe following polyfills are required:\n\t' +
Array.from(requiredPolyfills).sort().join('\n\t') +
'\n',
);
process.exitCode = 1;
}
const plugins = [];
if (process.env.CHECK_POLYFILLS === 'true') {
plugins.push([
'polyfill-corejs3',
{
method: 'usage-pure',
shouldInjectPolyfill(name, defaultShouldInject) {
if (defaultShouldInject) {
requiredPolyfills.add(name);
}
clearTimeout(checkPolyfillsTimeout);
checkPolyfillsTimeout = setTimeout(() => {
checkRequiredPolyfills();
requiredPolyfills = new Set();
}, 1000);
return false;
},
proposals: true,
},
]);
}
module.exports = {
plugins,
};