25 lines
602 B
TypeScript
25 lines
602 B
TypeScript
import { SourceMap } from "./map.ts";
|
|
import { transform, availablePresets } from "@babel/standalone";
|
|
|
|
export default function babel(next: Compiler): Compiler {
|
|
print("Loaded babel!");
|
|
|
|
return (filename, code, prevMap) => {
|
|
const res = transform(code, {
|
|
filename,
|
|
sourceMaps: true,
|
|
presets: [availablePresets.env],
|
|
});
|
|
|
|
const map = SourceMap.parse({
|
|
file: "babel-internal://" + filename,
|
|
mappings: res.map!.mappings,
|
|
sources: [filename],
|
|
});
|
|
|
|
registerSource(filename, code);
|
|
return next("babel-internal://" + filename, res.code!, SourceMap.chain(map, prevMap));
|
|
};
|
|
}
|
|
|