JSTQL-JS-Transform/src/index.ts

72 lines
2.4 KiB
TypeScript
Raw Normal View History

//import * as babelparser from "../babel/packages/babel-parser";
import * as babelparser from "@babel/parser";
//import core from "../babel/packages/babel-core";
import { parse_with_plugins } from "./parser/parse";
import {
SelfHostedRecipe,
TransformRecipe,
transform,
} from "./transform/transform";
import { readdir } from "node:fs/promises";
import { parseJSTQL } from "./langium/langiumRunner";
const dir = "../prettier/src";
const path = "test_files/pipeline_test.js";
const file = Bun.file(path);
const codeFromFile = await file.text();
const main = async () => {
//transform(selfHostedTransformExampleMultiStmt, codeFromFile);
/*
console.log(codeFromFile);
const jstql_file =
"/home/rolfmg/Coding/Master/didactic-chainsaw/dsl_files/pipeline.jstql";
const test_file = Bun.file(jstql_file);
const test_JSTQL = await test_file.text();
2024-05-12 18:06:37 +00:00
let proposals = await parseJSTQL(test_JSTQL);
let [code, count] = transform(proposals[0].cases, codeFromFile);
await Bun.write("output_files/pipeline_out.js", code);
return;
*/
const jstql_file =
"/home/rolfmg/Coding/Master/didactic-chainsaw/dsl_files/pipeline.jstql";
const test_file = Bun.file(jstql_file);
const test_JSTQL = await test_file.text();
let proposals = await parseJSTQL(test_JSTQL);
let basepathExamplesJSFiles = "../next.js";
let examples = (await readdir(basepathExamplesJSFiles, { recursive: true }))
.filter((x) => x.endsWith(".js"))
.map((x) => basepathExamplesJSFiles + "/" + x);
console.log(examples);
let sum = 0;
console.log("Scripts found ", sum, "matches!");
let count = 0;
for (let examplesFile of examples) {
try {
if (examplesFile.split("/").includes("compiled")) {
continue;
}
console.log(examplesFile);
let script = await Bun.file(examplesFile).text();
let [resultString, matches] = transform(proposals[0].cases, script);
sum += matches;
if (matches > 0) {
await Bun.write(
"output_testing/" + count + examplesFile.split("/").at(-1),
resultString
);
count += 1;
}
} catch (e) {
console.log("Failed");
}
console.log("current sum", sum);
}
console.log(sum);
2023-12-11 18:38:30 +00:00
};
main();