|
@@ -1,32 +1,56 @@
|
|
-import { spawnSync } from "child_process";
|
|
|
|
|
|
+import { spawn } from "child_process";
|
|
import { globSync } from "glob";
|
|
import { globSync } from "glob";
|
|
import { exit } from "process";
|
|
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);
|
|
|
|
+ }
|
|
|
|
+})();
|