@@ -2,49 +2,34 @@ import { InMemoryTransport } from "./inMemoryTransport.js";
22import { TransportRunnerBase , type TransportRunnerConfig } from "./base.js" ;
33import { type Server } from "../server.js" ;
44
5- export type DryModeTestHelpers = {
6- exit ( this : void , exitCode : number ) : never ;
5+ export type DryRunModeTestHelpers = {
76 logger : {
87 log ( this : void , message : string ) : void ;
98 error ( this : void , message : string ) : void ;
109 } ;
1110} ;
1211
13- type DryModeRunnerConfig = TransportRunnerConfig & DryModeTestHelpers ;
12+ type DryRunModeRunnerConfig = TransportRunnerConfig & DryRunModeTestHelpers ;
1413
15- const defaultLogger : DryModeTestHelpers [ "logger" ] = {
16- log ( message ) {
17- console . warn ( message ) ;
18- } ,
19- error ( message ) {
20- console . error ( message ) ;
21- } ,
22- } ;
23-
24- export class DryModeRunner extends TransportRunnerBase {
14+ export class DryRunModeRunner extends TransportRunnerBase {
2515 private server : Server | undefined ;
26- private exitProcess : DryModeTestHelpers [ "exit" ] ;
27- private consoleLogger : DryModeTestHelpers [ "logger" ] ;
16+ private consoleLogger : DryRunModeTestHelpers [ "logger" ] ;
2817
29- constructor ( { exit , logger, ...transportRunnerConfig } : DryModeRunnerConfig ) {
18+ constructor ( { logger, ...transportRunnerConfig } : DryRunModeRunnerConfig ) {
3019 super ( transportRunnerConfig ) ;
31- this . exitProcess = exit ;
3220 this . consoleLogger = logger ;
3321 }
3422
35- async start ( ) : Promise < void > {
36- try {
37- this . server = await this . setupServer ( ) ;
38- const transport = new InMemoryTransport ( ) ;
23+ override async start ( ) : Promise < void > {
24+ this . server = await this . setupServer ( ) ;
25+ const transport = new InMemoryTransport ( ) ;
3926
40- await this . server . connect ( transport ) ;
41- } catch ( error : unknown ) {
42- this . consoleLogger . error ( `Fatal error running server: ${ error as string } ` ) ;
43- this . exitProcess ( 1 ) ;
44- }
27+ await this . server . connect ( transport ) ;
28+ this . dumpConfig ( ) ;
29+ this . dumpTools ( ) ;
4530 }
4631
47- async closeTransport ( ) : Promise < void > {
32+ override async closeTransport ( ) : Promise < void > {
4833 await this . server ?. close ( ) ;
4934 }
5035
@@ -56,24 +41,9 @@ export class DryModeRunner extends TransportRunnerBase {
5641 private dumpTools ( ) : void {
5742 const tools = this . server ?. tools . map ( ( tool ) => ( {
5843 name : tool . name ,
59- description : tool . description ,
6044 category : tool . category ,
6145 } ) ) ;
6246 this . consoleLogger . log ( "Enabled tools:" ) ;
6347 this . consoleLogger . log ( JSON . stringify ( tools , null , 2 ) ) ;
6448 }
65-
66- static async assertDryMode (
67- runnerConfig : TransportRunnerConfig ,
68- exit : DryModeTestHelpers [ "exit" ] = ( exitCode : number ) => process . exit ( exitCode ) ,
69- logger : DryModeTestHelpers [ "logger" ] = defaultLogger
70- ) : Promise < void > | never {
71- if ( runnerConfig . userConfig . dry ) {
72- const runner = new this ( { ...runnerConfig , exit, logger } ) ;
73- await runner . start ( ) ;
74- runner . dumpConfig ( ) ;
75- runner . dumpTools ( ) ;
76- exit ( 0 ) ;
77- }
78- }
7949}
0 commit comments