moved to babel
This commit is contained in:
parent
0e7a019308
commit
ac163abd9d
4 changed files with 54 additions and 2 deletions
BIN
bun.lockb
BIN
bun.lockb
Binary file not shown.
|
@ -10,6 +10,10 @@
|
||||||
"typescript": "^5.2.2"
|
"typescript": "^5.2.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@babel/generator": "^7.23.0",
|
||||||
|
"@babel/parser": "^7.23.0",
|
||||||
|
"@babel/traverse": "^7.23.0",
|
||||||
|
"babel": "^6.23.0",
|
||||||
"ts-node": "^10.9.1"
|
"ts-node": "^10.9.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,8 @@ const main = async () => {
|
||||||
const matchStatements = async (module: swc.Script) => {
|
const matchStatements = async (module: swc.Script) => {
|
||||||
let fromLocal = from;
|
let fromLocal = from;
|
||||||
let toLocal = to;
|
let toLocal = to;
|
||||||
|
let key: "body" = "body";
|
||||||
|
module[key]
|
||||||
return match(fromLocal, toLocal, module.body);
|
return match(fromLocal, toLocal, module.body);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -63,7 +64,7 @@ const match = (from: any, to: any, module: swc.Statement[]): any => {
|
||||||
for (const [key, value] of Object.entries(module)){
|
for (const [key, value] of Object.entries(module)){
|
||||||
if (from[key] && key != "span"){
|
if (from[key] && key != "span"){
|
||||||
console.log(from[key] + " == " + value);
|
console.log(from[key] + " == " + value);
|
||||||
if (from[key] == value){
|
if (from[key as any] == value){
|
||||||
console.log("Found valid key with " + key);
|
console.log("Found valid key with " + key);
|
||||||
|
|
||||||
let matchRes = match(from[key], to, value);
|
let matchRes = match(from[key], to, value);
|
||||||
|
|
47
src/index_babel.ts
Normal file
47
src/index_babel.ts
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
import * as babelparser from "@babel/parser";
|
||||||
|
import traverse from "@babel/traverse";
|
||||||
|
import generate from "@babel/generator";
|
||||||
|
|
||||||
|
const main = () => {
|
||||||
|
|
||||||
|
let code_To_Insert = "697 + 457";
|
||||||
|
|
||||||
|
let code = "let n = 1 - 1;";
|
||||||
|
let ast:babelparser.ParseResult<File> = babelparser.parse(code);
|
||||||
|
console.log(ast);
|
||||||
|
let insert_ast = babelparser.parse(code);
|
||||||
|
|
||||||
|
traverse(ast, {
|
||||||
|
enter(path:any) {
|
||||||
|
|
||||||
|
if (path.isBinaryExpression({operator: "+"})){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
traverse(ast, {
|
||||||
|
enter(path:any){
|
||||||
|
if (path.isBinaryExpression({operator: "+"})){
|
||||||
|
path.node.operator="@@@";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(ast)
|
||||||
|
const output = generate(ast, {}, code);
|
||||||
|
console.log("input: " + code);
|
||||||
|
console.log("output: " + output.code);
|
||||||
|
//let inout = babelparser.parse(output.code);
|
||||||
|
//console.log(inout);
|
||||||
|
|
||||||
|
let awaitex = babelparser.parse("async function a(){let b = await c();}async function c(){return 1; }");
|
||||||
|
console.log(JSON.stringify(awaitex));
|
||||||
|
|
||||||
|
traverse(awaitex, {
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
main();
|
Loading…
Reference in a new issue