{"version":3,"file":"Checker.js","names":[],"sources":["../src/Checker.ts"],"sourcesContent":["import invariant from 'tiny-invariant'\nimport type {\n BuildInCheckerNames,\n BuildInCheckers,\n CreateDiagnostic,\n ServeAndBuildChecker,\n} from './types.js'\nimport { isInVitestEntryThread, isMainThread } from './utils.js'\nimport { createScript, type Script } from './worker.js'\n\nif (!(isMainThread || isInVitestEntryThread)) {\n process.stdout.isTTY = true\n}\n\ninterface CheckerMeta {\n name: T\n absFilePath: string\n createDiagnostic: CreateDiagnostic\n build: ServeAndBuildChecker['build']\n script?: Script\n}\n\nexport abstract class Checker\n implements CheckerMeta\n{\n public static logger: ((...v: string[]) => unknown)[] = []\n\n public static log(...args: any[]) {\n for (const fn of Checker.logger) {\n fn(...args)\n }\n }\n\n public name: T\n public absFilePath: string\n public createDiagnostic: CreateDiagnostic\n public build: ServeAndBuildChecker['build']\n public script?: Script\n\n public constructor({\n name,\n absFilePath,\n createDiagnostic,\n build,\n }: CheckerMeta) {\n this.name = name\n this.absFilePath = absFilePath\n this.build = build\n this.createDiagnostic = createDiagnostic\n this.build = build\n }\n\n public prepare() {\n const script = createScript>({\n absFilename: this.absFilePath,\n buildBin: this.build.buildBin,\n serverChecker: { createDiagnostic: this.createDiagnostic },\n })!\n\n this.script = script\n return script\n }\n\n public initMainThread() {\n invariant(\n this.script,\n `script should be created in 'prepare', but got ${this.script}`,\n )\n\n if (isMainThread || isInVitestEntryThread) {\n const createServeAndBuild = this.script.mainScript()\n return createServeAndBuild\n }\n\n return\n }\n\n public initWorkerThread() {\n invariant(\n this.script,\n `script should be created in 'prepare', but got ${this.script}`,\n )\n\n if (!(isMainThread || isInVitestEntryThread)) {\n this.script.workerScript()\n }\n }\n}\n"],"mappings":";;;;AAUA,IAAI,EAAE,gBAAgB,wBACpB,QAAQ,OAAO,QAAQ;AAWzB,IAAsB,UAAtB,MAAsB,QAEtB;CACE,OAAc,SAA0C,CAAC;CAEzD,OAAc,IAAI,GAAG,MAAa;EAChC,KAAK,MAAM,MAAM,QAAQ,QACvB,GAAG,GAAG,IAAI;CAEd;CAEA;CACA;CACA;CACA;CACA;CAEA,YAAmB,EACjB,MACA,aACA,kBACA,SACiB;EACjB,KAAK,OAAO;EACZ,KAAK,cAAc;EACnB,KAAK,QAAQ;EACb,KAAK,mBAAmB;EACxB,KAAK,QAAQ;CACf;CAEA,UAAiB;EACf,MAAM,SAAS,aAAuC;GACpD,aAAa,KAAK;GAClB,UAAU,KAAK,MAAM;GACrB,eAAe,EAAE,kBAAkB,KAAK,iBAAiB;EAC3D,CAAC;EAED,KAAK,SAAS;EACd,OAAO;CACT;CAEA,iBAAwB;EACtB,UACE,KAAK,QACL,kDAAkD,KAAK,QACzD;EAEA,IAAI,gBAAgB,uBAElB,OAD4B,KAAK,OAAO,WACf;CAI7B;CAEA,mBAA0B;EACxB,UACE,KAAK,QACL,kDAAkD,KAAK,QACzD;EAEA,IAAI,EAAE,gBAAgB,wBACpB,KAAK,OAAO,aAAa;CAE7B;AACF"}