|
1 | 1 | import { Logger } from '@nestjs/common';
|
2 | 2 | import * as fs from 'fs';
|
3 | 3 | import * as path from 'path';
|
4 |
| -import { BuildSequence, BuildHandlerConstructor } from '../types'; |
| 4 | +import { BuildSequence } from '../types'; |
5 | 5 | import { BuilderContext } from '../context';
|
6 | 6 | import { BuildMonitor } from '../monitor';
|
7 | 7 |
|
@@ -89,113 +89,10 @@ export async function executeBuildSequence(
|
89 | 89 | const context = new BuilderContext(sequence, 'test-env');
|
90 | 90 | const monitor = BuildMonitor.getInstance();
|
91 | 91 |
|
92 |
| - try { |
93 |
| - console.time('Total Execution Time'); |
94 |
| - await context.execute(); |
95 |
| - console.timeEnd('Total Execution Time'); |
96 |
| - |
97 |
| - const monitorReport = monitor.generateTextReport(sequence.id); |
98 |
| - fs.writeFileSync( |
99 |
| - path.join(logFolderPath, 'execution-metrics.txt'), |
100 |
| - monitorReport, |
101 |
| - 'utf8', |
102 |
| - ); |
103 |
| - |
104 |
| - const sequenceMetrics = monitor.getSequenceMetrics(sequence.id); |
105 |
| - if (sequenceMetrics) { |
106 |
| - const metricsJson = { |
107 |
| - totalDuration: `${sequenceMetrics.duration}ms`, |
108 |
| - successRate: `${sequenceMetrics.successRate.toFixed(2)}%`, |
109 |
| - totalNodes: sequenceMetrics.totalNodes, |
110 |
| - completedNodes: sequenceMetrics.completedNodes, |
111 |
| - failedNodes: sequenceMetrics.failedNodes, |
112 |
| - startTime: new Date(sequenceMetrics.startTime).toISOString(), |
113 |
| - endTime: new Date(sequenceMetrics.endTime).toISOString(), |
114 |
| - }; |
115 |
| - |
116 |
| - fs.writeFileSync( |
117 |
| - path.join(logFolderPath, 'metrics.json'), |
118 |
| - JSON.stringify(metricsJson, null, 2), |
119 |
| - 'utf8', |
120 |
| - ); |
121 |
| - |
122 |
| - Logger.log('\nSequence Metrics:'); |
123 |
| - console.table(metricsJson); |
124 |
| - } |
125 |
| - |
126 |
| - // Log node results |
127 |
| - for (const node of sequence.nodes) { |
128 |
| - const handlerClass = node.handler as BuildHandlerConstructor; |
129 |
| - const resultData = context.getNodeData(handlerClass); |
130 |
| - const nodeMetrics = sequenceMetrics?.nodeMetrics.get(handlerClass.name); |
131 |
| - |
132 |
| - if (resultData) { |
133 |
| - const content = |
134 |
| - typeof resultData === 'object' |
135 |
| - ? objectToMarkdown(resultData) |
136 |
| - : resultData; |
137 |
| - writeToFile(logFolderPath, node.name || handlerClass.name, content); |
138 |
| - } else { |
139 |
| - Logger.error( |
140 |
| - `Error: Handler ${node.name || handlerClass.name} failed to produce result data`, |
141 |
| - ); |
142 |
| - writeToFile( |
143 |
| - logFolderPath, |
144 |
| - `${node.name || handlerClass.name}-error`, |
145 |
| - objectToMarkdown({ |
146 |
| - error: 'No result data', |
147 |
| - metrics: nodeMetrics, |
148 |
| - }), |
149 |
| - ); |
150 |
| - } |
151 |
| - } |
152 |
| - |
153 |
| - const summary = { |
154 |
| - timestamp: new Date().toISOString(), |
155 |
| - sequenceId: sequence.id, |
156 |
| - sequenceName: sequence.name, |
157 |
| - totalExecutionTime: `${sequenceMetrics?.duration}ms`, |
158 |
| - successRate: `${sequenceMetrics?.successRate.toFixed(2)}%`, |
159 |
| - totalNodes: sequenceMetrics?.totalNodes, |
160 |
| - completedNodes: sequenceMetrics?.completedNodes, |
161 |
| - logFolder: logFolderPath, |
162 |
| - }; |
163 |
| - |
164 |
| - fs.writeFileSync( |
165 |
| - path.join(logFolderPath, 'execution-summary.json'), |
166 |
| - JSON.stringify(summary, null, 2), |
167 |
| - 'utf8', |
168 |
| - ); |
169 |
| - |
170 |
| - return { |
171 |
| - success: true, |
172 |
| - logFolderPath, |
173 |
| - metrics: sequenceMetrics, |
174 |
| - }; |
175 |
| - } catch (error) { |
176 |
| - const errorReport = { |
177 |
| - error: { |
178 |
| - message: error.message, |
179 |
| - stack: error.stack, |
180 |
| - }, |
181 |
| - metrics: monitor.getSequenceMetrics(sequence.id), |
182 |
| - timestamp: new Date().toISOString(), |
183 |
| - }; |
184 |
| - |
185 |
| - fs.writeFileSync( |
186 |
| - path.join(logFolderPath, 'error-with-metrics.json'), |
187 |
| - JSON.stringify(errorReport, null, 2), |
188 |
| - 'utf8', |
189 |
| - ); |
| 92 | + await context.execute(); |
190 | 93 |
|
191 |
| - Logger.error('\nError during sequence execution:'); |
192 |
| - Logger.error(error); |
193 |
| - |
194 |
| - return { |
195 |
| - success: false, |
196 |
| - logFolderPath, |
197 |
| - error: error as Error, |
198 |
| - metrics: monitor.getSequenceMetrics(sequence.id), |
199 |
| - }; |
200 |
| - } |
| 94 | + return { |
| 95 | + success: true, |
| 96 | + logFolderPath: '', |
| 97 | + }; |
201 | 98 | }
|
0 commit comments