@@ -58,23 +58,21 @@ const debug: debug.IDebugger = d(__filename);
58
58
const defaultOptions = { waitFor : 1000 } ;
59
59
60
60
export default class JSDOMConnector implements IConnector {
61
- private _options ;
62
- private _headers ;
63
- private _href : string ;
64
- private _targetNetworkData : NetworkData ;
65
- private _window : Window ;
66
- private _document : JSDOMAsyncHTMLDocument ;
61
+ private _options : any ;
62
+ private _href : string = '' ;
63
+ private _targetNetworkData ! : NetworkData ;
64
+ private _window ! : Window ;
65
+ private _document ! : JSDOMAsyncHTMLDocument ;
67
66
private _timeout : number ;
68
67
private _resourceLoader : ResourceLoader ;
69
68
70
69
public request : Requester ;
71
70
public server : Engine ;
72
- public finalHref : string ;
73
- public fetchedHrefs : Set < string > ;
71
+ public finalHref ! : string ;
72
+ public fetchedHrefs ! : Set < string > ;
74
73
75
74
public constructor ( server : Engine , config ?: object ) {
76
75
this . _options = Object . assign ( { } , defaultOptions , config ) ;
77
- this . _headers = this . _options . headers ;
78
76
this . request = new Requester ( this . _options ) ;
79
77
this . server = server ;
80
78
this . _timeout = server . timeout ;
@@ -156,7 +154,7 @@ export default class JSDOMConnector implements IConnector {
156
154
* * uses the `src` attribute of `<link rel="icon">` if present.
157
155
* * uses `favicon.ico` and the final url after redirects.
158
156
*/
159
- private async getFavicon ( element ?: HTMLElement ) {
157
+ private async getFavicon ( element ?: Element | null ) {
160
158
const href = ( element && element . getAttribute ( 'href' ) ) || '/favicon.ico' ;
161
159
162
160
try {
@@ -203,7 +201,7 @@ export default class JSDOMConnector implements IConnector {
203
201
} catch ( err ) {
204
202
const hops : Array < string > = this . request . getRedirects ( err . uri ) ;
205
203
const fetchError : FetchError = {
206
- element : null ,
204
+ element : null as any ,
207
205
/* istanbul ignore next */
208
206
error : err . error ? err . error : err ,
209
207
hops,
@@ -234,11 +232,11 @@ export default class JSDOMConnector implements IConnector {
234
232
235
233
const { charset, mediaType } = getContentTypeData ( fetchEnd . element , fetchEnd . resource , fetchEnd . response . headers , fetchEnd . response . body . rawContent ) ;
236
234
237
- fetchEnd . response . mediaType = mediaType ;
238
- fetchEnd . response . charset = charset ;
235
+ fetchEnd . response . mediaType = mediaType ! ;
236
+ fetchEnd . response . charset = charset ! ;
239
237
240
238
// Event is also emitted when status code in response is not 200.
241
- await this . server . emitAsync ( `fetch::end::${ getType ( mediaType ) } ` , fetchEnd ) ;
239
+ await this . server . emitAsync ( `fetch::end::${ getType ( mediaType ! ) } ` , fetchEnd ) ;
242
240
243
241
/*
244
242
* If the target is not an HTML we don't need to
@@ -255,7 +253,7 @@ export default class JSDOMConnector implements IConnector {
255
253
256
254
const virtualConsole = new VirtualConsole ( ) ;
257
255
258
- virtualConsole . on ( 'error' , ( err ) => {
256
+ virtualConsole . on ( 'error' , ( err : Error ) => {
259
257
debug ( `Console: ${ err } ` ) ;
260
258
} ) ;
261
259
@@ -314,7 +312,7 @@ export default class JSDOMConnector implements IConnector {
314
312
} , this . _options . waitFor ) ;
315
313
} ;
316
314
317
- const onError = ( error ) => {
315
+ const onError = ( error : ErrorEvent ) => {
318
316
debug ( `onError: ${ error } ` ) ;
319
317
} ;
320
318
@@ -377,7 +375,7 @@ export default class JSDOMConnector implements IConnector {
377
375
return new Promise ( ( resolve , reject ) => {
378
376
/* istanbul ignore next */
379
377
const runner : ChildProcess = fork ( path . join ( __dirname , 'evaluate-runner' ) , [ this . finalHref || this . _href , this . _options . waitFor ] , { execArgv : [ ] } ) ;
380
- let timeoutId ;
378
+ let timeoutId : NodeJS . Timer | null = null ;
381
379
382
380
runner . on ( 'message' , ( result ) => {
383
381
/* istanbul ignore if */
0 commit comments