laxy-verify 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { existsSync, readFileSync } from "fs";
|
|
1
|
+
import { execSync } from "child_process";
|
|
2
|
+
import { existsSync, readFileSync, readdirSync } from "fs";
|
|
3
3
|
import { join } from "path";
|
|
4
4
|
import { startDevServer, stopDevServer } from "./dev-server.js";
|
|
5
5
|
function findLhciManifest(tmpDir) {
|
|
@@ -13,18 +13,38 @@ function findLhciManifest(tmpDir) {
|
|
|
13
13
|
return null;
|
|
14
14
|
}
|
|
15
15
|
function parseLhciResults(projectPath) {
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
16
|
+
const lhciDir = join(projectPath, ".lighthouseci");
|
|
17
|
+
if (!existsSync(lhciDir))
|
|
18
18
|
return null;
|
|
19
19
|
try {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
// Try manifest.json first
|
|
21
|
+
const manifestPath = join(lhciDir, "manifest.json");
|
|
22
|
+
if (existsSync(manifestPath)) {
|
|
23
|
+
const entries = JSON.parse(readFileSync(manifestPath, "utf-8"));
|
|
24
|
+
if (Array.isArray(entries) && entries.length > 0) {
|
|
25
|
+
const entry = entries[Math.floor(entries.length / 2)];
|
|
26
|
+
const reportPath = entry.jsonPath;
|
|
27
|
+
if (reportPath && existsSync(reportPath)) {
|
|
28
|
+
return parseReportFile(reportPath);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Fallback: find lhr-*.json files directly
|
|
33
|
+
const files = readdirSync(lhciDir)
|
|
34
|
+
.filter((f) => f.startsWith("lhr-") && f.endsWith(".json"))
|
|
35
|
+
.sort();
|
|
36
|
+
if (files.length === 0)
|
|
27
37
|
return null;
|
|
38
|
+
// Use the median run
|
|
39
|
+
const reportPath = join(lhciDir, files[Math.floor(files.length / 2)]);
|
|
40
|
+
return parseReportFile(reportPath);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function parseReportFile(reportPath) {
|
|
47
|
+
try {
|
|
28
48
|
const report = JSON.parse(readFileSync(reportPath, "utf-8"));
|
|
29
49
|
const cat = report.categories;
|
|
30
50
|
if (!cat)
|
|
@@ -56,21 +76,21 @@ export async function runLighthouse(projectPath, options = {}) {
|
|
|
56
76
|
try {
|
|
57
77
|
const url = `http://localhost:${port}`;
|
|
58
78
|
// Run lhci collect
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
79
|
+
const chromeFlags = process.env.CI
|
|
80
|
+
? "--settings.chromeFlags=--no-sandbox --disable-gpu --headless"
|
|
81
|
+
: "";
|
|
82
|
+
const cmd = [
|
|
83
|
+
"npx -y @lhci/cli collect",
|
|
62
84
|
`--url=${url}`,
|
|
63
85
|
`--numberOfRuns=${runs}`,
|
|
64
86
|
"--settings.formFactor=desktop",
|
|
65
87
|
"--settings.screenEmulation.disabled=true",
|
|
66
88
|
"--settings.throttlingMethod=provided",
|
|
67
89
|
"--settings.onlyCategories=performance,accessibility,best-practices,seo",
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
lhciArgs.push("--settings.chromeFlags=--no-sandbox --disable-gpu --headless");
|
|
71
|
-
}
|
|
90
|
+
chromeFlags,
|
|
91
|
+
].filter(Boolean).join(" ");
|
|
72
92
|
try {
|
|
73
|
-
|
|
93
|
+
execSync(cmd, {
|
|
74
94
|
cwd: projectPath,
|
|
75
95
|
timeout: 120000,
|
|
76
96
|
stdio: "pipe",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lighthouse-runner.js","sourceRoot":"","sources":["../src/lighthouse-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lighthouse-runner.js","sourceRoot":"","sources":["../src/lighthouse-runner.ts"],"names":[],"mappings":"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"}
|