specify babel plugins separately
This commit is contained in:
parent
40f6cfe616
commit
b9a397a7b9
@ -1,5 +1,5 @@
|
||||
import { SourceMap } from "./map.ts";
|
||||
import { transform, availablePresets } from "@babel/standalone";
|
||||
import { transform, availablePlugins } from "@babel/standalone";
|
||||
|
||||
export default function babel(next: Compiler): Compiler {
|
||||
print("Loaded babel!");
|
||||
@ -8,7 +8,63 @@ export default function babel(next: Compiler): Compiler {
|
||||
const res = transform(code, {
|
||||
filename,
|
||||
sourceMaps: true,
|
||||
presets: [availablePresets.env],
|
||||
assumptions: {
|
||||
arrayLikeIsIterable: true,
|
||||
constantSuper: true,
|
||||
ignoreFunctionLength: true,
|
||||
ignoreToPrimitiveHint: true,
|
||||
mutableTemplateObject: true,
|
||||
noDocumentAll: true,
|
||||
noNewArrows: true,
|
||||
noUninitializedPrivateFieldAccess: true,
|
||||
privateFieldsAsSymbols: true,
|
||||
},
|
||||
plugins: [
|
||||
// ES2022
|
||||
availablePlugins["transform-class-properties"],
|
||||
availablePlugins["transform-class-static-block"],
|
||||
availablePlugins["transform-private-methods"],
|
||||
availablePlugins["transform-private-property-in-object"],
|
||||
// "syntax-top-level-await",
|
||||
|
||||
// ES2021
|
||||
availablePlugins["transform-logical-assignment-operators"],
|
||||
availablePlugins["transform-numeric-separator"],
|
||||
|
||||
// ES2020
|
||||
availablePlugins["transform-optional-chaining"],
|
||||
availablePlugins["transform-nullish-coalescing-operator"],
|
||||
|
||||
// ES2018
|
||||
availablePlugins["transform-async-generator-functions"],
|
||||
availablePlugins["transform-object-rest-spread"],
|
||||
availablePlugins["transform-unicode-property-regex"],
|
||||
|
||||
// ES2017
|
||||
availablePlugins["transform-async-to-generator"],
|
||||
|
||||
// ES2016
|
||||
availablePlugins["transform-exponentiation-operator"],
|
||||
|
||||
// ES2015
|
||||
availablePlugins["transform-block-scoping"],
|
||||
availablePlugins["transform-classes"],
|
||||
availablePlugins["transform-computed-properties"],
|
||||
availablePlugins["transform-destructuring"],
|
||||
availablePlugins["transform-duplicate-keys"],
|
||||
availablePlugins["transform-for-of"],
|
||||
availablePlugins["transform-function-name"],
|
||||
availablePlugins["transform-literals"],
|
||||
availablePlugins["transform-new-target"],
|
||||
availablePlugins["transform-object-super"],
|
||||
availablePlugins["transform-parameters"],
|
||||
availablePlugins["transform-shorthand-properties"],
|
||||
availablePlugins["transform-spread"],
|
||||
availablePlugins["transform-sticky-regex"],
|
||||
availablePlugins["transform-template-literals"],
|
||||
availablePlugins["transform-unicode-escapes"],
|
||||
availablePlugins["transform-unicode-regex"],
|
||||
],
|
||||
});
|
||||
|
||||
const map = SourceMap.parse({
|
||||
@ -18,7 +74,9 @@ export default function babel(next: Compiler): Compiler {
|
||||
});
|
||||
|
||||
registerSource(filename, code);
|
||||
return next("babel-internal://" + filename, res.code!, SourceMap.chain(map, prevMap));
|
||||
const func = next("babel-internal://" + filename, res.code!, SourceMap.chain(map, prevMap));
|
||||
func.name = filename;
|
||||
return func;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,9 @@ export default function coffee(next: Compiler): Compiler {
|
||||
});
|
||||
|
||||
registerSource(filename, code);
|
||||
return next("coffee-internal://" + filename, result, SourceMap.chain(map, prevMap));
|
||||
const func = next("coffee-internal://" + filename, result, SourceMap.chain(map, prevMap));
|
||||
func.name = filename;
|
||||
return func;
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user