aboutsummaryrefslogtreecommitdiff
path: root/node_modules/collect-v8-coverage/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/collect-v8-coverage/index.js')
-rw-r--r--node_modules/collect-v8-coverage/index.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/node_modules/collect-v8-coverage/index.js b/node_modules/collect-v8-coverage/index.js
new file mode 100644
index 0000000..8c4a779
--- /dev/null
+++ b/node_modules/collect-v8-coverage/index.js
@@ -0,0 +1,37 @@
+'use strict';
+
+const { Session } = require('inspector');
+const { promisify } = require('util');
+
+class CoverageInstrumenter {
+ constructor() {
+ this.session = new Session();
+
+ this.postSession = promisify(this.session.post.bind(this.session));
+ }
+
+ async startInstrumenting() {
+ this.session.connect();
+
+ await this.postSession('Profiler.enable');
+
+ await this.postSession('Profiler.startPreciseCoverage', {
+ callCount: true,
+ detailed: true,
+ });
+ }
+
+ async stopInstrumenting() {
+ const {result} = await this.postSession(
+ 'Profiler.takePreciseCoverage',
+ );
+
+ await this.postSession('Profiler.stopPreciseCoverage');
+
+ await this.postSession('Profiler.disable');
+
+ return result;
+ }
+}
+
+module.exports.CoverageInstrumenter = CoverageInstrumenter;