aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@vitest/coverage-v8/dist/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/@vitest/coverage-v8/dist/index.js')
-rw-r--r--vanilla/node_modules/@vitest/coverage-v8/dist/index.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/vanilla/node_modules/@vitest/coverage-v8/dist/index.js b/vanilla/node_modules/@vitest/coverage-v8/dist/index.js
new file mode 100644
index 0000000..85d9c9d
--- /dev/null
+++ b/vanilla/node_modules/@vitest/coverage-v8/dist/index.js
@@ -0,0 +1,61 @@
+import inspector from 'node:inspector/promises';
+import { fileURLToPath } from 'node:url';
+import { provider } from 'std-env';
+import { l as loadProvider } from './load-provider-CdgAx3rL.js';
+import { n as normalize } from './pathe.M-eThtNZ-BTaAGrLg.js';
+
+const session = new inspector.Session();
+let enabled = false;
+const mod = {
+ async startCoverage({ isolate }) {
+ if (isolate === false && enabled) {
+ return;
+ }
+ enabled = true;
+ session.connect();
+ await session.post("Profiler.enable");
+ await session.post("Profiler.startPreciseCoverage", {
+ callCount: true,
+ detailed: true
+ });
+ },
+ async takeCoverage(options) {
+ if (provider === "stackblitz") {
+ return { result: [] };
+ }
+ const coverage = await session.post("Profiler.takePreciseCoverage");
+ const result = [];
+ // Reduce amount of data sent over rpc by doing some early result filtering
+ for (const entry of coverage.result) {
+ if (filterResult(entry)) {
+ result.push({
+ ...entry,
+ startOffset: options?.moduleExecutionInfo?.get(normalize(fileURLToPath(entry.url)))?.startOffset || 0
+ });
+ }
+ }
+ return { result };
+ },
+ async stopCoverage({ isolate }) {
+ if (isolate === false) {
+ return;
+ }
+ await session.post("Profiler.stopPreciseCoverage");
+ await session.post("Profiler.disable");
+ session.disconnect();
+ },
+ async getProvider() {
+ return loadProvider();
+ }
+};
+function filterResult(coverage) {
+ if (!coverage.url.startsWith("file://")) {
+ return false;
+ }
+ if (coverage.url.includes("/node_modules/")) {
+ return false;
+ }
+ return true;
+}
+
+export { mod as default };