@code-pushup/lighthouse-plugin 0.57.0 → 0.58.0
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.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/lighthouse-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.58.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Code PushUp plugin for measuring web performance and quality with Lighthouse 🔥",
|
|
6
6
|
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-lighthouse#readme",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
},
|
|
37
37
|
"type": "module",
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@code-pushup/models": "0.
|
|
40
|
-
"@code-pushup/utils": "0.
|
|
39
|
+
"@code-pushup/models": "0.58.0",
|
|
40
|
+
"@code-pushup/utils": "0.58.0",
|
|
41
41
|
"ansis": "^3.3.0",
|
|
42
42
|
"chrome-launcher": "^1.1.1",
|
|
43
43
|
"lighthouse": "^12.0.0",
|
|
@@ -3,10 +3,10 @@ import { LIGHTHOUSE_PLUGIN_SLUG } from './constants.js';
|
|
|
3
3
|
import { normalizeFlags } from './normalize-flags.js';
|
|
4
4
|
import { LIGHTHOUSE_GROUPS, LIGHTHOUSE_NAVIGATION_AUDITS, } from './runner/constants.js';
|
|
5
5
|
import { createRunnerFunction } from './runner/runner.js';
|
|
6
|
-
import {
|
|
6
|
+
import { markSkippedAuditsAndGroups } from './utils.js';
|
|
7
7
|
export function lighthousePlugin(url, flags) {
|
|
8
8
|
const { skipAudits, onlyAudits, onlyCategories, ...unparsedFlags } = normalizeFlags(flags ?? {});
|
|
9
|
-
const { audits, groups } =
|
|
9
|
+
const { audits, groups } = markSkippedAuditsAndGroups(LIGHTHOUSE_NAVIGATION_AUDITS, LIGHTHOUSE_GROUPS, { skipAudits, onlyAudits, onlyCategories });
|
|
10
10
|
const packageJson = createRequire(import.meta.url)('../../package.json');
|
|
11
11
|
return {
|
|
12
12
|
slug: LIGHTHOUSE_PLUGIN_SLUG,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lighthouse-plugin.js","sourceRoot":"","sources":["../../../../../packages/plugin-lighthouse/src/lib/lighthouse-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lighthouse-plugin.js","sourceRoot":"","sources":["../../../../../packages/plugin-lighthouse/src/lib/lighthouse-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,KAAyB;IAEzB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,GAChE,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAE9B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,0BAA0B,CACnD,4BAA4B,EAC5B,iBAAiB,EACjB,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,CAC3C,CAAC;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAChD,oBAAoB,CACkB,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,YAAY;QAClB,MAAM;QACN,MAAM;QACN,MAAM,EAAE,oBAAoB,CAAC,GAAG,EAAE;YAChC,UAAU;YACV,UAAU;YACV,cAAc;YACd,GAAG,aAAa;SACjB,CAAC;KACH,CAAC;AACJ,CAAC"}
|
package/src/lib/utils.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare class CategoriesNotImplementedError extends Error {
|
|
|
12
12
|
}
|
|
13
13
|
export declare function validateOnlyCategories(groups: Group[], onlyCategories: string | string[]): boolean;
|
|
14
14
|
export type FilterOptions = Partial<Pick<LighthouseCliFlags, 'onlyAudits' | 'onlyCategories' | 'skipAudits'>>;
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function markSkippedAuditsAndGroups(audits: Audit[], groups: Group[], options?: FilterOptions): {
|
|
16
16
|
audits: Audit[];
|
|
17
17
|
groups: Group[];
|
|
18
18
|
};
|
package/src/lib/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toArray } from '@code-pushup/utils';
|
|
2
2
|
import { LIGHTHOUSE_PLUGIN_SLUG } from './constants.js';
|
|
3
3
|
export function lighthouseGroupRef(groupSlug, weight = 1) {
|
|
4
4
|
return {
|
|
@@ -40,38 +40,45 @@ export function validateOnlyCategories(groups, onlyCategories) {
|
|
|
40
40
|
}
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
// eslint-disable-next-line max-lines-per-function
|
|
44
|
+
export function markSkippedAuditsAndGroups(audits, groups, options) {
|
|
44
45
|
const { onlyAudits = [], skipAudits = [], onlyCategories = [], } = options ?? {};
|
|
45
|
-
|
|
46
|
+
if (onlyCategories.length === 0 &&
|
|
47
|
+
onlyAudits.length === 0 &&
|
|
48
|
+
skipAudits.length === 0) {
|
|
49
|
+
return { audits, groups };
|
|
50
|
+
}
|
|
46
51
|
if (onlyCategories.length > 0) {
|
|
47
52
|
validateOnlyCategories(groups, onlyCategories);
|
|
48
|
-
const categorySlugs = new Set(onlyCategories);
|
|
49
|
-
const filteredGroups = groups.filter(({ slug }) => categorySlugs.has(slug));
|
|
50
|
-
const auditSlugsFromRemainingGroups = new Set(filteredGroups.flatMap(({ refs }) => refs.map(({ slug }) => slug)));
|
|
51
|
-
return {
|
|
52
|
-
audits: audits.filter(({ slug }) => auditSlugsFromRemainingGroups.has(slug)),
|
|
53
|
-
groups: filteredGroups,
|
|
54
|
-
};
|
|
55
53
|
}
|
|
56
|
-
|
|
54
|
+
if (onlyAudits.length > 0 || skipAudits.length > 0) {
|
|
57
55
|
validateAudits(audits, onlyAudits);
|
|
58
56
|
validateAudits(audits, skipAudits);
|
|
59
|
-
const onlyAuditSlugs = new Set(onlyAudits);
|
|
60
|
-
const skipAuditSlugs = new Set(skipAudits);
|
|
61
|
-
const filterAudits = ({ slug }) => !(
|
|
62
|
-
// audit is NOT in given onlyAuditSlugs
|
|
63
|
-
((onlyAudits.length > 0 && !onlyAuditSlugs.has(slug)) ||
|
|
64
|
-
// audit IS in given skipAuditSlugs
|
|
65
|
-
(skipAudits.length > 0 && skipAuditSlugs.has(slug))));
|
|
66
|
-
return {
|
|
67
|
-
audits: audits.filter(filterAudits),
|
|
68
|
-
groups: filterItemRefsBy(groups, filterAudits),
|
|
69
|
-
};
|
|
70
57
|
}
|
|
71
|
-
|
|
58
|
+
const onlyGroupSlugs = new Set(onlyCategories);
|
|
59
|
+
const onlyAuditSlugs = new Set(onlyAudits);
|
|
60
|
+
const skipAuditSlugs = new Set(skipAudits);
|
|
61
|
+
const markedGroups = groups.map(group => ({
|
|
62
|
+
...group,
|
|
63
|
+
isSkipped: onlyCategories.length > 0 && !onlyGroupSlugs.has(group.slug),
|
|
64
|
+
}));
|
|
65
|
+
const validGroupAuditSlugs = new Set(markedGroups
|
|
66
|
+
.filter(group => !group.isSkipped)
|
|
67
|
+
.flatMap(group => group.refs.map(ref => ref.slug)));
|
|
68
|
+
const markedAudits = audits.map(audit => ({
|
|
69
|
+
...audit,
|
|
70
|
+
isSkipped: (onlyAudits.length > 0 && !onlyAuditSlugs.has(audit.slug)) ||
|
|
71
|
+
(skipAudits.length > 0 && skipAuditSlugs.has(audit.slug)) ||
|
|
72
|
+
(validGroupAuditSlugs.size > 0 && !validGroupAuditSlugs.has(audit.slug)),
|
|
73
|
+
}));
|
|
74
|
+
const fullyMarkedGroups = markedGroups.map(group => ({
|
|
75
|
+
...group,
|
|
76
|
+
isSkipped: group.isSkipped ||
|
|
77
|
+
group.refs.every(ref => markedAudits.some(audit => audit.slug === ref.slug && audit.isSkipped)),
|
|
78
|
+
}));
|
|
72
79
|
return {
|
|
73
|
-
audits,
|
|
74
|
-
groups,
|
|
80
|
+
audits: markedAudits,
|
|
81
|
+
groups: fullyMarkedGroups,
|
|
75
82
|
};
|
|
76
83
|
}
|
|
77
84
|
//# sourceMappingURL=utils.js.map
|
package/src/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../packages/plugin-lighthouse/src/lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../packages/plugin-lighthouse/src/lib/utils.ts"],"names":[],"mappings":"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"}
|