@@ -128,28 +128,25 @@ export class HooksService implements IHooksService {
128
128
let maybePromise = this . $injector . resolve ( hookEntryPoint , hookArguments ) ;
129
129
if ( maybePromise ) {
130
130
this . $logger . trace ( 'Hook promises to signal completion' ) ;
131
- await new Promise ( ( resolve , reject ) => {
132
- maybePromise . then (
133
- resolve ,
134
- ( err : any ) => {
135
- if ( _ . isBoolean ( err . stopExecution ) && err . errorAsWarning === true ) {
136
- this . $logger . warn ( err . message ) ;
137
- resolve ( ) ;
138
- } else {
139
- reject ( err ) ;
140
- }
141
- } ) ;
142
- } ) ;
143
-
144
- }
145
- this . $logger . trace ( 'Hook completed' ) ;
146
- } else {
147
- let environment = this . prepareEnvironment ( hook . fullPath ) ;
148
- this . $logger . trace ( "Executing %s hook at location %s with environment " , hookName , hook . fullPath , environment ) ;
149
-
150
- let output = await this . $childProcess . spawnFromEvent ( command , [ hook . fullPath ] , "close" , environment , { throwError : false } ) ;
151
- if ( output . exitCode !== 0 ) {
152
- throw new Error ( output . stdout + output . stderr ) ;
131
+ try {
132
+ await maybePromise ;
133
+ } catch ( err ) {
134
+ if ( err && _ . isBoolean ( err . stopExecution ) && err . errorAsWarning === true ) {
135
+ this . $logger . warn ( err . message || err ) ;
136
+ } else {
137
+ throw err || new Error ( `Failed to execute hook: ${ hook . fullPath } .` ) ;
138
+ }
139
+ }
140
+
141
+ this . $logger . trace ( 'Hook completed' ) ;
142
+ } else {
143
+ let environment = this . prepareEnvironment ( hook . fullPath ) ;
144
+ this . $logger . trace ( "Executing %s hook at location %s with environment " , hookName , hook . fullPath , environment ) ;
145
+
146
+ let output = await this . $childProcess . spawnFromEvent ( command , [ hook . fullPath ] , "close" , environment , { throwError : false } ) ;
147
+ if ( output . exitCode !== 0 ) {
148
+ throw new Error ( output . stdout + output . stderr ) ;
149
+ }
153
150
}
154
151
}
155
152
}
0 commit comments