specify babel plugins separately
This commit is contained in:
parent
40f6cfe616
commit
b9a397a7b9
@ -1,5 +1,5 @@
|
|||||||
import { SourceMap } from "./map.ts";
|
import { SourceMap } from "./map.ts";
|
||||||
import { transform, availablePresets } from "@babel/standalone";
|
import { transform, availablePlugins } from "@babel/standalone";
|
||||||
|
|
||||||
export default function babel(next: Compiler): Compiler {
|
export default function babel(next: Compiler): Compiler {
|
||||||
print("Loaded babel!");
|
print("Loaded babel!");
|
||||||
@ -8,7 +8,63 @@ export default function babel(next: Compiler): Compiler {
|
|||||||
const res = transform(code, {
|
const res = transform(code, {
|
||||||
filename,
|
filename,
|
||||||
sourceMaps: true,
|
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({
|
const map = SourceMap.parse({
|
||||||
@ -18,7 +74,9 @@ export default function babel(next: Compiler): Compiler {
|
|||||||
});
|
});
|
||||||
|
|
||||||
registerSource(filename, code);
|
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);
|
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