@@ -10,19 +10,21 @@ const session = new inspector.Session()
10
10
let enabled = false
11
11
12
12
const mod : CoverageProviderModule = {
13
- startCoverage ( { isolate } ) {
13
+ async startCoverage ( { isolate } ) {
14
14
if ( isolate === false && enabled ) {
15
15
return
16
16
}
17
17
18
18
enabled = true
19
19
20
20
session . connect ( )
21
- session . post ( 'Profiler.enable' )
22
- session . post ( 'Profiler.startPreciseCoverage' , {
23
- callCount : true ,
24
- detailed : true ,
25
- } )
21
+ await new Promise ( resolve => session . post ( 'Profiler.enable' , resolve ) )
22
+ await new Promise ( resolve =>
23
+ session . post (
24
+ 'Profiler.startPreciseCoverage' ,
25
+ { callCount : true , detailed : true } ,
26
+ resolve ,
27
+ ) )
26
28
} ,
27
29
28
30
takeCoverage ( options ) : Promise < { result : ScriptCoverageWithOffset [ ] } > {
@@ -32,14 +34,19 @@ const mod: CoverageProviderModule = {
32
34
return reject ( error )
33
35
}
34
36
35
- const result = coverage . result
36
- . filter ( filterResult )
37
- . map ( res => ( {
38
- ...res ,
39
- startOffset : options ?. moduleExecutionInfo ?. get ( fileURLToPath ( res . url ) ) ?. startOffset || 0 ,
40
- } ) )
37
+ try {
38
+ const result = coverage . result
39
+ . filter ( filterResult )
40
+ . map ( res => ( {
41
+ ...res ,
42
+ startOffset : options ?. moduleExecutionInfo ?. get ( fileURLToPath ( res . url ) ) ?. startOffset || 0 ,
43
+ } ) )
41
44
42
- resolve ( { result } )
45
+ resolve ( { result } )
46
+ }
47
+ catch ( e ) {
48
+ reject ( e )
49
+ }
43
50
} )
44
51
45
52
if ( provider === 'stackblitz' ) {
@@ -48,13 +55,13 @@ const mod: CoverageProviderModule = {
48
55
} )
49
56
} ,
50
57
51
- stopCoverage ( { isolate } ) {
58
+ async stopCoverage ( { isolate } ) {
52
59
if ( isolate === false ) {
53
60
return
54
61
}
55
62
56
- session . post ( 'Profiler.stopPreciseCoverage' )
57
- session . post ( 'Profiler.disable' )
63
+ await new Promise ( resolve => session . post ( 'Profiler.stopPreciseCoverage' , resolve ) )
64
+ await new Promise ( resolve => session . post ( 'Profiler.disable' , resolve ) )
58
65
session . disconnect ( )
59
66
} ,
60
67
0 commit comments