|
9 | 9 | importtype{BuilderContext,BuilderOutput}from'@angular-devkit/architect'; |
10 | 10 | importtype{Config,ConfigOptions,FilePattern,InlinePluginDef,Server}from'karma'; |
11 | 11 | import{randomUUID}from'node:crypto'; |
| 12 | +import{rmSync}from'node:fs'; |
12 | 13 | import*asfsfrom'node:fs/promises'; |
13 | 14 | importtype{IncomingMessage,ServerResponse}from'node:http'; |
14 | 15 | import{createRequire}from'node:module'; |
@@ -386,6 +387,12 @@ async function initializeApplication( |
386 | 387 | constoutputPath=path.join(context.workspaceRoot,'dist/test-out',randomUUID()); |
387 | 388 | constprojectSourceRoot=awaitgetProjectSourceRoot(context); |
388 | 389 |
|
| 390 | +// Setup exit cleanup for temporary directory |
| 391 | +consthandleProcessExit=()=>rmSync(outputPath,{recursive:true,force:true}); |
| 392 | +process.once('exit',handleProcessExit); |
| 393 | +process.once('SIGINT',handleProcessExit); |
| 394 | +process.once('uncaughtException',handleProcessExit); |
| 395 | + |
389 | 396 | const[karma,entryPoints]=awaitPromise.all([ |
390 | 397 | import('karma'), |
391 | 398 | collectEntrypoints(options,context,projectSourceRoot), |
|