@@ -162,7 +162,6 @@ export class PerformanceBenchmark {
162162 testData : TestData ,
163163 parser : any ,
164164 ) : Promise < BenchmarkResult > {
165- // Similar to benchmarkLegacy but for modern implementation
166165 const memBefore = process . memoryUsage ( ) ;
167166 let memPeak = memBefore ;
168167
@@ -176,44 +175,45 @@ export class PerformanceBenchmark {
176175 const startTime = Date . now ( ) ;
177176 let errorCount = 0 ;
178177
179- try {
180- const result = parser . parse ( testData . csvContent , {
181- header : true ,
182- dynamicTyping : true ,
183- complete : ( results : any ) => {
184- // Results handling
185- } ,
186- error : ( ) => {
187- errorCount ++ ;
188- } ,
189- } ) ;
190-
191- const endTime = Date . now ( ) ;
192- clearInterval ( memoryMonitor ) ;
193- const memAfter = process . memoryUsage ( ) ;
178+ return new Promise ( ( resolve , reject ) => {
179+ try {
180+ const result = parser . parse ( testData . csvContent , {
181+ header : true ,
182+ dynamicTyping : true ,
183+ complete : ( results : any ) => {
184+ const endTime = Date . now ( ) ;
185+ clearInterval ( memoryMonitor ) ;
186+ const memAfter = process . memoryUsage ( ) ;
194187
195- const totalTime = endTime - startTime ;
196- const rowsPerSecond = Math . round (
197- ( testData . expectedRows / totalTime ) * 1000 ,
198- ) ;
188+ const totalTime = endTime - startTime ;
189+ const rowsPerSecond = Math . round (
190+ ( testData . expectedRows / totalTime ) * 1000 ,
191+ ) ;
199192
200- return {
201- implementation : "modern" ,
202- testName : testData . name ,
203- rowsPerSecond,
204- totalRows : testData . expectedRows ,
205- totalTime,
206- memoryUsage : {
207- before : memBefore ,
208- after : memAfter ,
209- peak : memPeak ,
210- } ,
211- errors : errorCount ,
212- } ;
213- } catch ( error ) {
214- clearInterval ( memoryMonitor ) ;
215- throw error ;
216- }
193+ resolve ( {
194+ implementation : "modern" ,
195+ testName : testData . name ,
196+ rowsPerSecond,
197+ totalRows : testData . expectedRows ,
198+ totalTime,
199+ memoryUsage : {
200+ before : memBefore ,
201+ after : memAfter ,
202+ peak : memPeak ,
203+ } ,
204+ errors : errorCount ,
205+ } ) ;
206+ } ,
207+ error : ( error : any ) => {
208+ errorCount ++ ;
209+ console . warn ( `Modern parsing error: ${ error . message } ` ) ;
210+ } ,
211+ } ) ;
212+ } catch ( error ) {
213+ clearInterval ( memoryMonitor ) ;
214+ reject ( error ) ;
215+ }
216+ } ) ;
217217 }
218218
219219 /**
@@ -345,13 +345,19 @@ export async function runCIBenchmark(): Promise<void> {
345345 try {
346346 // Import both implementations
347347 const legacyPapa = require ( "../../legacy/papaparse.js" ) ;
348- const modernPapa = require ( "../../dist/papaparse.js" ) ;
348+ const modernPapaModule = require ( "../../dist/papaparse.js" ) ;
349+ const modernPapa = modernPapaModule . default || modernPapaModule ;
349350
350- console . log ( "📊 Running performance comparison between legacy and V6 implementations..." ) ;
351+ console . log (
352+ "📊 Running performance comparison between legacy and V6 implementations..." ,
353+ ) ;
351354
352355 // Run the benchmark suite
353- const { results, summary } = await benchmark . runBenchmarkSuite ( legacyPapa , modernPapa ) ;
354-
356+ const { results, summary } = await benchmark . runBenchmarkSuite (
357+ legacyPapa ,
358+ modernPapa ,
359+ ) ;
360+
355361 // Export results for analysis
356362 benchmark . exportResults ( results , `benchmark-${ Date . now ( ) } .json` ) ;
357363
@@ -360,11 +366,17 @@ export async function runCIBenchmark(): Promise<void> {
360366 console . log ( ` Total Tests: ${ summary . totalTests } ` ) ;
361367 console . log ( ` Passed: ${ summary . passedTests } ` ) ;
362368 console . log ( ` Failed: ${ summary . failedTests } ` ) ;
363- console . log ( ` Average Performance Ratio: ${ ( summary . avgPerformanceRatio * 100 ) . toFixed ( 1 ) } %` ) ;
364- console . log ( ` Average Memory Ratio: ${ ( summary . avgMemoryRatio * 100 ) . toFixed ( 1 ) } %` ) ;
369+ console . log (
370+ ` Average Performance Ratio: ${ ( summary . avgPerformanceRatio * 100 ) . toFixed ( 1 ) } %` ,
371+ ) ;
372+ console . log (
373+ ` Average Memory Ratio: ${ ( summary . avgMemoryRatio * 100 ) . toFixed ( 1 ) } %` ,
374+ ) ;
365375
366376 if ( ! summary . passed ) {
367- console . error ( "❌ Performance benchmarks failed - some tests did not meet thresholds" ) ;
377+ console . error (
378+ "❌ Performance benchmarks failed - some tests did not meet thresholds" ,
379+ ) ;
368380 process . exit ( 1 ) ;
369381 }
370382
0 commit comments