@@ -19,6 +19,12 @@ export function help (opts = {}) {
1919 --overrides='{"express":"latest"}'
2020 --config=./expf.config.json
2121 --[no-]write
22+
23+ Runners:
24+ - @expressjs/perf-runner-vanilla: local docker based runner
25+ - Flags: --force-rebuild
26+ - @expressjs/perf-runner-nsolid: local docker based runner with nsolid
27+ - Flags: --force-rebuild
2228`
2329}
2430
@@ -104,31 +110,34 @@ export default function main (_opts = {}) {
104110 // Import and start the runner
105111 const runner = ( await import ( opts . runner ) ) . default ;
106112
113+ let vers ;
107114 try {
108- const vers = await nv ( opts . node , {
115+ vers = await nv ( opts . node , {
109116 latestOfMajorOnly : true
110117 } ) ;
111-
112- const results = await runner ( {
113- cwd : opts . cwd ,
114- repo : opts . repo ,
115- test : opts . test ,
116- node : vers ?. [ 0 ] ?. version ,
117- overrides : opts . overrides ,
118- duration : opts . duration ,
119- signal : ac . signal
120- } ) ;
121-
122- if ( opts . write !== false ) {
123- const outputFile = join ( dirname ( import . meta. resolve ( opts . test ) . replace ( / ^ f i l e : / , '' ) ) , 'results' , 'result-' + Date . now ( ) + '.json' ) ;
124- await mkdir ( dirname ( outputFile ) , { recursive : true } ) ;
125- await writeFile ( outputFile , JSON . stringify ( results , null , 2 ) ) ;
126- console . log ( `written to: ${ outputFile } ` ) ;
118+ } catch ( e ) {
119+ // If offline or cannt load node versions, use
120+ // the option as passed in without a default
121+ if ( e . code === 'ENOTFOUND' && _opts . node ) {
122+ vers = [ { version : _opts . node } ] ;
127123 } else {
128- console . log ( results ) ;
124+ throw e ;
129125 }
130- } catch ( e ) {
131- console . error ( e ) ;
126+ }
127+
128+ const results = await runner ( {
129+ ...opts ,
130+ node : vers ?. [ 0 ] ?. version ,
131+ signal : ac . signal
132+ } ) ;
133+
134+ if ( opts . write !== false ) {
135+ const outputFile = join ( dirname ( import . meta. resolve ( opts . test ) . replace ( / ^ f i l e : / , '' ) ) , 'results' , 'result-' + Date . now ( ) + '.json' ) ;
136+ await mkdir ( dirname ( outputFile ) , { recursive : true } ) ;
137+ await writeFile ( outputFile , JSON . stringify ( results , null , 2 ) ) ;
138+ console . log ( `written to: ${ outputFile } ` ) ;
139+ } else {
140+ console . log ( results ) ;
132141 }
133142 completed = true ;
134143
0 commit comments