start js rewriting, added todo list

This commit is contained in:
Avad3 2024-05-13 00:01:45 -04:00
parent 5c53e59d07
commit b43f2360a0
6 changed files with 99 additions and 14 deletions

View file

@ -1,6 +1,34 @@
// don't do js rewriting yet
// i'm making a benchmark on different rewriting methods
import { parse } from "meriyah";
import { generate } from "astring";
import { makeTraveler } from "astravel";
import { encodeUrl } from "./url";
// i am a cat. i like to be petted. i like to be fed. i like to be
export function rewriteJs(js: string, origin?: string) {
return js;
const ast = parse(js, {
module: true
});
const customTraveler = makeTraveler({
ImportDeclaration: (node) => {
node.source.value = encodeUrl(node.source.value, origin);
},
ImportExpression: (node) => {
node.source.value = encodeUrl(node.source.value, origin);
},
ExportAllDeclaration: (node) => {
node.source.value = encodeUrl(node.source.value, origin);
},
ExportNamedDeclaration: (node) => {
if (node.source) node.source.value = encodeUrl(node.source.value, origin);
}
});
customTraveler.go(ast);
return generate(ast);
}