const {readdirSync} = require("fs") const { fork, execSync } = require("child_process") const jobResults = [] const workJob = (filename)=> new Promise((res)=>{ const job = fork("./dist/spec/"+filename, {stdio:"inherit"}); job.addListener("close", (code)=>{ jobResults.push(!!!code) res() }) }) const workJobs = async()=>{ execSync("tsc") for (file of readdirSync("./dist/spec", {withFileTypes: true}).filter((file)=>file.isFile()&&file.name.match(/\.spec\.js$/)).map(({name})=>name)){ await workJob(file) console.log() } } workJobs().then(()=>{ console.log(jobResults.find((result)=>!result)?`${jobResults.filter((result)=>!result).length} out of ${jobResults.length} jobs failed; FIX THIS!`:"all's fine, get back to coding") })