-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDynamicAuditorManager.ts
More file actions
83 lines (73 loc) · 2.71 KB
/
Copy pathDynamicAuditorManager.ts
File metadata and controls
83 lines (73 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import { AppLogger, WorkerHelper } from '@v6y/core-logic';
import { AuditCommonsType } from './types/AuditCommonsType.ts';
const { forkWorker } = WorkerHelper;
const startDynamicAudit = async ({ applicationId, auditRunId }: AuditCommonsType) => {
try {
AppLogger.info(
'[DynamicAuditorManager - startDynamicAudit] applicationId: ',
applicationId,
);
AppLogger.info('[DynamicAuditorManager - startDynamicAudit] auditRunId: ', auditRunId);
// Start audits in a worker thread to prevent blocking the main thread
const workerConfig = {
applicationId,
auditRunId,
};
// start Lighthouse analysis
try {
await forkWorker(
'./src/workers/LighthouseAnalysisWorker.ts',
workerConfig as WorkerOptions,
);
AppLogger.info(
'[DynamicAuditorManager - startDynamicAudit] Lighthouse Audit have completed successfully.',
);
} catch (lighthouseError) {
AppLogger.error(
'[DynamicAuditorManager - startDynamicAudit] Lighthouse worker error:',
lighthouseError,
);
}
// start Green Hosting analysis
try {
await forkWorker(
'./src/workers/GreenHostingAnalysisWorker.ts',
workerConfig as WorkerOptions,
);
AppLogger.info(
'[DynamicAuditorManager - startDynamicAudit] Green Hosting Audit have completed successfully.',
);
} catch (greenError) {
AppLogger.error(
'[DynamicAuditorManager - startDynamicAudit] Green Hosting worker error:',
greenError,
);
}
// start SonarQube analysis
try {
await forkWorker(
'./src/workers/SonarQubeAnalysisWorker.ts',
workerConfig as WorkerOptions,
);
AppLogger.info(
'[DynamicAuditorManager - startDynamicAudit] SonarQube Audit have completed successfully.',
);
} catch (sonarError) {
AppLogger.error(
'[DynamicAuditorManager - startDynamicAudit] SonarQube worker error:',
sonarError,
);
}
return true; // Indicates successful initiation of audits
} catch (error) {
AppLogger.error(
'[DynamicAuditorManager - startDynamicAudit] An exception occurred during the app audits: ',
error,
);
return false; // Indicates failure to initiate audits
}
};
const DynamicAuditorManager = {
startDynamicAudit,
};
export default DynamicAuditorManager;