Selaa lähdekoodia

Fix to use promise and remove unnecessary variables

tamayika 2 vuotta sitten
vanhempi
commit
2b3444b493
1 muutettua tiedostoa jossa 51 lisäystä ja 27 poistoa
  1. 51 27
      website/scripts/check-playground-samples-js.ts

+ 51 - 27
website/scripts/check-playground-samples-js.ts

@@ -1,32 +1,56 @@
-import { spawnSync } from "child_process";
+import { spawn } from "child_process";
 import { globSync } from "glob";
 import { exit } from "process";
 
-let someFileError = false;
-const files = globSync("src/website/data/playground-samples/*/*/*.js");
-for (const file of files) {
-	const command = `yarn tsc --noEmit --allowJs --checkJs --skipLibCheck ../out/monaco-editor/monaco.d.ts ${file}`;
-	console.log(file);
-	const { status, stdout } = spawnSync(
-		"yarn",
-		[
-			"tsc",
-			"--noEmit",
-			"--allowJs",
-			"--checkJs",
-			"--skipLibCheck",
-			"../out/monaco-editor/monaco.d.ts",
-			file,
-		],
-		{ shell: true }
-	);
-	if (status != 0) {
-		console.log(stdout.toString());
-		someFileError = true;
+(async () => {
+	let someFileError = false;
+	const files = globSync("src/website/data/playground-samples/*/*/*.js");
+	type Result = { file: string; status: number; stdout: string };
+	const promises: Promise<Result>[] = [];
+	for (const file of files) {
+		promises.push(
+			new Promise<Result>((resolve) => {
+				const process = spawn(
+					"yarn",
+					[
+						"tsc",
+						"--noEmit",
+						"--allowJs",
+						"--checkJs",
+						"--skipLibCheck",
+						"../out/monaco-editor/monaco.d.ts",
+						file,
+					],
+					{ shell: true }
+				);
+				let buffer = "";
+				process.on("exit", () => {
+					resolve({
+						file: file,
+						status: process.exitCode ?? 1,
+						stdout: buffer,
+					});
+				});
+				process.stdout.on("data", (data) => {
+					buffer += data.toString();
+				});
+				process.stderr.on("data", (data) => {
+					buffer += data.toString();
+				});
+			})
+		);
+	}
+	for (const promise of promises) {
+		const result = await promise;
+		console.log(result.file);
+		if (result.status != 0) {
+			console.log(result.stdout.toString());
+			someFileError = true;
+		}
 	}
-}
 
-if (someFileError) {
-	console.error("Some files had type errors.");
-	exit(1);
-}
+	if (someFileError) {
+		console.error("Some files had type errors.");
+		exit(1);
+	}
+})();