/
preset-stage-3.ts
30 lines (27 loc) 路 1.01 KB
/
preset-stage-3.ts
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
import * as babelPlugins from "./generated/plugins";
export default (_: any, { loose = false } = {}) => {
// todo(flow->ts) improve types
const plugins: any[] = [
babelPlugins.syntaxImportAssertions,
babelPlugins.proposalUnicodeSetsRegex,
babelPlugins.proposalDuplicateNamedCapturingGroupsRegex,
];
if (!process.env.BABEL_8_BREAKING) {
// These are Stage 4
plugins.push(
babelPlugins.syntaxImportMeta,
babelPlugins.syntaxTopLevelAwait,
babelPlugins.proposalExportNamespaceFrom,
babelPlugins.proposalLogicalAssignmentOperators,
[babelPlugins.proposalOptionalChaining, { loose }],
[babelPlugins.proposalNullishCoalescingOperator, { loose }],
[babelPlugins.proposalClassProperties, { loose }],
babelPlugins.proposalJsonStrings,
babelPlugins.proposalNumericSeparator,
[babelPlugins.proposalPrivateMethods, { loose }],
babelPlugins.proposalPrivatePropertyInObject,
babelPlugins.proposalClassStaticBlock,
);
}
return { plugins };
};