@@ -16,38 +16,37 @@ import {
1616 downloadIndexTicks ,
1717} from "./renderer.js" ;
1818
19- let duration ;
19+ let __dirname = path . dirname ( fileURLToPath ( import . meta. url ) ) ;
20+
2021async function timerify ( fn ) {
2122 let start = performance . now ( ) ;
2223 let result = await fn ( ) ;
2324 let end = performance . now ( ) ;
24- duration = `(${ Math . round ( end - start ) } ms)` ;
25- return result ;
25+ let duration = `(${ Math . round ( end - start ) } ms)` ;
26+ return { result, duration } ;
2627}
2728
28- let __dirname = path . dirname ( fileURLToPath ( import . meta. url ) ) ;
29-
3029function solverFunction ( year , day ) {
3130 let solver = path . resolve ( __dirname , ".." , year , `${ dayName ( day ) } .js` ) ;
3231 if ( ! existsSync ( solver ) ) {
3332 return undefined ;
3433 }
3534 return async ( ) => {
36- let module = await import ( `../${ year } /${ dayName ( day ) } .js` ) ;
37- let input = readInput (
38- new URL ( `../${ year } /${ dayName ( day ) } .js` , import . meta. url ) ,
39- ) ;
35+ let moduleName = `../${ year } /${ dayName ( day ) } .js` ;
36+ let module = await import ( moduleName ) ;
37+ let input = readInput ( new URL ( moduleName , import . meta. url ) ) ;
4038 console . log ( `Solution for ${ year } /${ dayName ( day ) } !!!` ) ;
4139 console . log ( "----------------------------" ) ;
40+ let result , duration ;
4241 if ( module . day ) {
43- let { part1 , part2 } = await timerify ( ( ) => module . day ( input ) ) ;
44- console . log ( `Part1: ${ part1 } ` ) ;
45- console . log ( `Part2: ${ part2 } ` , duration ) ;
42+ ( { result , duration } = await timerify ( ( ) => module . day ( input ) ) ) ;
43+ console . log ( `Part1: ${ result . part1 } ` ) ;
44+ console . log ( `Part2: ${ result . part2 } ` , duration ) ;
4645 } else {
47- let result1 = timerify ( ( ) => module . part1 ( input ) ) ;
48- console . log ( `Part1: ${ await result1 } ` , duration ) ;
49- let result2 = timerify ( ( ) => module . part2 ( input ) ) ;
50- console . log ( `Part2: ${ await result2 } ` , duration ) ;
46+ ( { result , duration } = await timerify ( ( ) => module . part1 ( input ) ) ) ;
47+ console . log ( `Part1: ${ result } ` , duration ) ;
48+ ( { result , duration } = await timerify ( ( ) => module . part2 ( input ) ) ) ;
49+ console . log ( `Part2: ${ result } ` , duration ) ;
5150 }
5251 console . log ( "" ) ;
5352 } ;
@@ -93,43 +92,42 @@ async function takeScreenshots(year) {
9392 ) ;
9493}
9594
96- export async function solveAll ( year , day , run = true ) {
97- if ( day ) {
98- tempLeaderboard ( year ) ;
99- let solver = solverFunction ( year , day ) ;
100- if ( solver ) {
101- await solver ( ) ;
102- } else {
103- await createSolver ( year , day ) ;
104- }
95+ export async function solveDay ( year , day ) {
96+ tempLeaderboard ( year ) ;
97+ let solver = solverFunction ( year , day ) ;
98+ if ( solver ) {
99+ await solver ( ) ;
105100 } else {
106- console . log ( `Downloading files (${ year } )...` ) ;
107- let days = getDays ( year ) ;
108- var bar = new ProgressBar ( "[:bar] :percent" , {
109- total : ( run ? days . length : 0 ) + downloadIndexTicks ,
110- width : 40 ,
111- } ) ;
112- await downloadIndex ( year , bar , days . length * 2 ) ;
113- if ( run ) {
114- for ( let day of days ) {
115- await downloadInput ( year , day ) ;
116- bar . tick ( ) ;
117- }
118- }
119- await takeScreenshots ( year ) ;
101+ await createSolver ( year , day ) ;
102+ }
103+ }
120104
121- if ( run ) {
122- for ( let day of days ) {
123- let solver = solverFunction ( year , day ) ;
124- await solver ( ) ;
125- }
105+ export async function solveAllDays ( year , run = true ) {
106+ console . log ( `Downloading files (${ year } )...` ) ;
107+ let days = getDays ( year ) ;
108+ var bar = new ProgressBar ( "[:bar] :percent" , {
109+ total : ( run ? days . length : 0 ) + downloadIndexTicks ,
110+ width : 40 ,
111+ } ) ;
112+ await downloadIndex ( year , bar , days . length * 2 ) ;
113+ if ( run ) {
114+ for ( let day of days ) {
115+ await downloadInput ( year , day ) ;
116+ bar . tick ( ) ;
117+ }
118+ }
119+ await takeScreenshots ( year ) ;
120+ if ( run ) {
121+ for ( let day of days ) {
122+ let solver = solverFunction ( year , day ) ;
123+ await solver ( ) ;
126124 }
127125 }
128126}
129127
130128export async function solveAllYears ( ) {
131129 let years = getAllYears ( ) ;
132130 for ( let year of years ) {
133- await solveAll ( year , undefined , false ) ;
131+ await solveAllDays ( year , false ) ;
134132 }
135133}
0 commit comments