@@ -55,7 +55,7 @@ export class MockServer extends MockServerCore implements KrasServer {
55
55
readonly logs : Array < LogEntry > = [ ] ;
56
56
readonly logLevel : LogLevel ;
57
57
58
- constructor ( config : KrasConfiguration ) {
58
+ constructor ( private config : KrasConfiguration ) {
59
59
super ( config ) ;
60
60
61
61
this . logLevel = config . logLevel || 'error' ;
@@ -66,15 +66,18 @@ export class MockServer extends MockServerCore implements KrasServer {
66
66
}
67
67
}
68
68
69
- async setup ( config : KrasConfiguration ) {
69
+ async setup ( ) {
70
+ const config = this . config ;
71
+ await super . setup ( ) ;
70
72
await withManagement ( this , config ) ;
71
73
await withInjectors ( this , config ) ;
72
74
await withMiddlewares ( this , config ) ;
73
75
await withFiles ( this , config ) ;
74
76
}
75
77
76
- stop ( ) {
77
- return super . stop ( ) . then ( ( ) => this . injectors . forEach ( disposeInjector ) ) ;
78
+ async stop ( ) {
79
+ await super . stop ( ) ;
80
+ this . injectors . forEach ( disposeInjector ) ;
78
81
}
79
82
80
83
private log ( type : LogEntryType , data : any ) {
@@ -98,30 +101,28 @@ export function readKrasConfig(options?: ConfigurationOptions, ...files: Array<s
98
101
return mergeConfiguration ( options , ...configurations ) ;
99
102
}
100
103
101
- export async function buildKras ( config ?: Partial < KrasConfiguration > ) {
104
+ export function buildKras ( config ?: Partial < KrasConfiguration > ) {
102
105
const options = buildConfiguration ( config ) ;
103
- const server = new MockServer ( options ) ;
104
- await server . setup ( options ) ;
105
- return server ;
106
+ return new MockServer ( options ) ;
106
107
}
107
108
108
- export async function buildKrasWithCli ( config : KrasConfiguration ) {
109
- const server = await buildKras ( config ) ;
109
+ export function buildKrasWithCli ( config : KrasConfiguration ) {
110
+ const server = buildKras ( config ) ;
110
111
connectToCli ( server , config . api !== false ) ;
111
112
return server ;
112
113
}
113
114
114
115
export async function runKras ( config ?: Partial < KrasConfiguration > ) {
115
- const server = await buildKras ( config ) ;
116
- server . start ( ) ;
116
+ const server = buildKras ( config ) ;
117
+ await server . start ( ) ;
117
118
return server ;
118
119
}
119
120
120
121
export type KrasRuntimeConfiguration = Partial < KrasConfiguration > & KrasHandlerConfiguration ;
121
122
122
123
export function withKras ( config ?: KrasRuntimeConfiguration ) {
123
- return async ( callback : KrasRunner ) => {
124
- const server = await buildKras ( config ) ;
124
+ return ( callback : KrasRunner ) => {
125
+ const server = buildKras ( config ) ;
125
126
configureHandler ( server , config ) ;
126
127
return runWith ( server , callback ) ;
127
128
} ;
@@ -205,8 +206,8 @@ export function connectToCli(server: MockServer, canManage = true) {
205
206
206
207
export async function runFromCli ( options : ConfigurationOptions , rcfile : string ) {
207
208
const config = readKrasConfig ( options , resolve ( homedir ( ) , krasrc ) , resolve ( currentDir , krasrc ) , rcfile ) ;
208
- const server = await buildKrasWithCli ( config ) ;
209
+ const server = buildKrasWithCli ( config ) ;
209
210
console . log ( `Starting kras v${ version } ...` ) ;
210
- server . start ( ) ;
211
+ await server . start ( ) ;
211
212
return server ;
212
213
}
0 commit comments