12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import { spawn } from "child_process";
- import { globSync } from "glob";
- import { exit } from "process";
- (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",
- "--target",
- "es6",
- "--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);
- }
- })();
|