@bundle-stats/utils 4.3.0-beta.1 → 4.3.0-beta.3
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/lib/config/index.js +1 -10
- package/lib/config/index.js.map +1 -1
- package/lib/constants.js +21 -1
- package/lib/constants.js.map +1 -1
- package/lib/jobs/create-job.js +2 -2
- package/lib/jobs/create-job.js.map +1 -1
- package/lib/report/create.js +2 -2
- package/lib/report/create.js.map +1 -1
- package/lib/utils/component-links.js +15 -3
- package/lib/utils/component-links.js.map +1 -1
- package/lib/webpack/extract/assets-size-total-insight.js +2 -2
- package/lib/webpack/extract/assets-size-total-insight.js.map +1 -1
- package/lib/webpack/extract/index.js +2 -0
- package/lib/webpack/extract/index.js.map +1 -1
- package/lib/webpack/extract/modules-packages-duplicate.js +95 -9
- package/lib/webpack/extract/modules-packages-duplicate.js.map +1 -1
- package/lib/webpack/extract/modules-packages-new-insight.js +57 -0
- package/lib/webpack/extract/modules-packages-new-insight.js.map +1 -0
- package/lib-esm/config/index.js +0 -9
- package/lib-esm/config/index.js.map +1 -1
- package/lib-esm/constants.js +20 -0
- package/lib-esm/constants.js.map +1 -1
- package/lib-esm/jobs/create-job.js +2 -2
- package/lib-esm/jobs/create-job.js.map +1 -1
- package/lib-esm/report/create.js +2 -2
- package/lib-esm/report/create.js.map +1 -1
- package/lib-esm/utils/component-links.js +14 -2
- package/lib-esm/utils/component-links.js.map +1 -1
- package/lib-esm/webpack/extract/assets-size-total-insight.js +1 -1
- package/lib-esm/webpack/extract/assets-size-total-insight.js.map +1 -1
- package/lib-esm/webpack/extract/index.js +2 -0
- package/lib-esm/webpack/extract/index.js.map +1 -1
- package/lib-esm/webpack/extract/modules-packages-duplicate.js +95 -8
- package/lib-esm/webpack/extract/modules-packages-duplicate.js.map +1 -1
- package/lib-esm/webpack/extract/modules-packages-new-insight.js +54 -0
- package/lib-esm/webpack/extract/modules-packages-new-insight.js.map +1 -0
- package/package.json +10 -10
- package/src/config/index.js +0 -10
- package/src/constants.ts +63 -12
- package/src/jobs/create-job.ts +2 -3
- package/src/report/create.ts +2 -3
- package/src/utils/component-links.ts +15 -2
- package/src/webpack/extract/assets-size-total-insight.js +1 -1
- package/src/webpack/extract/index.js +2 -0
- package/src/webpack/extract/modules-packages-duplicate.ts +148 -12
- package/src/webpack/extract/modules-packages-new-insight.ts +80 -0
- package/types/config/index.d.ts +0 -5
- package/types/constants.d.ts +55 -12
- package/types/utils/component-links.d.ts +2 -1
- package/types/webpack/extract/assets-size-total-insight.d.ts +2 -2
- package/types/webpack/extract/modules-packages-duplicate.d.ts +9 -17
- package/types/webpack/extract/modules-packages-new-insight.d.ts +8 -0
- package/lib/config/insights.js +0 -10
- package/lib/config/insights.js.map +0 -1
- package/lib-esm/config/insights.js +0 -7
- package/lib-esm/config/insights.js.map +0 -1
- package/src/config/insights.ts +0 -5
- package/types/config/insights.d.ts +0 -5
|
@@ -2,7 +2,15 @@ import map from 'lodash/map';
|
|
|
2
2
|
import orderBy from 'lodash/orderBy';
|
|
3
3
|
import sum from 'lodash/sum';
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
InsightType,
|
|
7
|
+
Job,
|
|
8
|
+
JobInsight,
|
|
9
|
+
JobInsightDuplicatePackagesData,
|
|
10
|
+
JobInsightDuplicatePackagesV3Data,
|
|
11
|
+
JobInsights,
|
|
12
|
+
MetricRun,
|
|
13
|
+
} from '../../constants';
|
|
6
14
|
import { Packages } from '../types';
|
|
7
15
|
|
|
8
16
|
interface DuplicatePackage {
|
|
@@ -16,7 +24,116 @@ interface DuplicatePackageGroup {
|
|
|
16
24
|
children: Array<DuplicatePackage>;
|
|
17
25
|
}
|
|
18
26
|
|
|
19
|
-
|
|
27
|
+
interface ModulesPackagesDuplicateData {
|
|
28
|
+
insights: {
|
|
29
|
+
duplicatePackages?: JobInsights['webpack']['duplicatePackages'];
|
|
30
|
+
duplicatePackagesV3: JobInsights['webpack']['duplicatePackagesV3'];
|
|
31
|
+
};
|
|
32
|
+
metrics: {
|
|
33
|
+
duplicatePackagesCount: MetricRun;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const getDuplicatePackagesInsight = (
|
|
38
|
+
duplicatePackagesMap: Record<string, Array<string>>,
|
|
39
|
+
baselineDuplicatePackagesMap?: Record<string, Array<string>>,
|
|
40
|
+
): JobInsight<JobInsightDuplicatePackagesV3Data> => {
|
|
41
|
+
const duplicateInstances: Array<string> = [];
|
|
42
|
+
const baselineDuplicateInstances: Array<string> = [];
|
|
43
|
+
const newDuplicateInstances: Array<string> = [];
|
|
44
|
+
const removedDuplicateInstances: Array<string> = [];
|
|
45
|
+
|
|
46
|
+
Object.entries(duplicatePackagesMap).forEach(([id, instances]) => {
|
|
47
|
+
instances.forEach((duplicateInstance) => {
|
|
48
|
+
if (duplicateInstance === id) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
duplicateInstances.push(duplicateInstance);
|
|
53
|
+
|
|
54
|
+
if (baselineDuplicatePackagesMap?.[id]?.includes(duplicateInstance)) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
newDuplicateInstances.push(duplicateInstance);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
if (baselineDuplicatePackagesMap) {
|
|
63
|
+
Object.entries(baselineDuplicatePackagesMap).forEach(([id, instances]) => {
|
|
64
|
+
instances.forEach((duplicateInstance) => {
|
|
65
|
+
if (duplicateInstance === id) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
baselineDuplicateInstances.push(duplicateInstance);
|
|
70
|
+
|
|
71
|
+
if (duplicatePackagesMap?.[id]?.includes(duplicateInstance)) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
removedDuplicateInstances.push(duplicateInstance);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const duplicateInstancesCount = duplicateInstances.length;
|
|
81
|
+
const newDuplicateInstancesCount = newDuplicateInstances.length;
|
|
82
|
+
const removedDuplicateInstancesCount = removedDuplicateInstances.length;
|
|
83
|
+
|
|
84
|
+
let text: string;
|
|
85
|
+
let insightType: InsightType;
|
|
86
|
+
|
|
87
|
+
if (newDuplicateInstancesCount > 0 && removedDuplicateInstancesCount > 0) {
|
|
88
|
+
// New duplicate packages and removed duplicates
|
|
89
|
+
const item =
|
|
90
|
+
newDuplicateInstancesCount > 1 || removedDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
91
|
+
text = `Bundle introduced ${newDuplicateInstancesCount} and removed ${removedDuplicateInstancesCount} duplicate ${item}`;
|
|
92
|
+
insightType = InsightType.ERROR;
|
|
93
|
+
} else if (newDuplicateInstancesCount > 0 && baselineDuplicatePackagesMap) {
|
|
94
|
+
// New duplicate packages and baseline comparison
|
|
95
|
+
const item = newDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
96
|
+
text = `Bundle introduced ${newDuplicateInstancesCount} duplicate ${item}`;
|
|
97
|
+
insightType = InsightType.ERROR;
|
|
98
|
+
} else if (newDuplicateInstancesCount > 0) {
|
|
99
|
+
// New duplicate packages and no baseline
|
|
100
|
+
const item = newDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
101
|
+
text = `Bundle contains ${newDuplicateInstancesCount} duplicate ${item}`;
|
|
102
|
+
insightType = InsightType.WARNING;
|
|
103
|
+
} else if (removedDuplicateInstancesCount > 0) {
|
|
104
|
+
// Removed duplicate packages
|
|
105
|
+
const item = removedDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
106
|
+
text = `Bundle removed ${removedDuplicateInstancesCount} duplicate ${item}`;
|
|
107
|
+
insightType = InsightType.INFO;
|
|
108
|
+
} else if (
|
|
109
|
+
newDuplicateInstancesCount === 0 &&
|
|
110
|
+
removedDuplicateInstancesCount === 0 &&
|
|
111
|
+
duplicateInstancesCount > 0
|
|
112
|
+
) {
|
|
113
|
+
// No change comparred with the baseline
|
|
114
|
+
const item = duplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
115
|
+
text = `Bundle contains ${duplicateInstancesCount} duplicate ${item}`;
|
|
116
|
+
insightType = InsightType.WARNING;
|
|
117
|
+
} else {
|
|
118
|
+
// No change
|
|
119
|
+
text = 'Bundle does not contain duplicate packages';
|
|
120
|
+
insightType = InsightType.INFO;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return {
|
|
124
|
+
type: insightType,
|
|
125
|
+
data: {
|
|
126
|
+
text,
|
|
127
|
+
packages: duplicatePackagesMap,
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
export const extractModulesPackagesDuplicate = (
|
|
133
|
+
_: any,
|
|
134
|
+
currentExtractedData: any,
|
|
135
|
+
baselineJob?: Job,
|
|
136
|
+
): ModulesPackagesDuplicateData => {
|
|
20
137
|
const source: Packages = currentExtractedData?.metrics?.packages || {};
|
|
21
138
|
|
|
22
139
|
// Group packages by name(uniq)
|
|
@@ -58,8 +175,16 @@ export const extractModulesPackagesDuplicate = (_: any, currentExtractedData: an
|
|
|
58
175
|
});
|
|
59
176
|
});
|
|
60
177
|
|
|
178
|
+
const baselineDuplicatePackages =
|
|
179
|
+
baselineJob?.insights?.webpack?.duplicatePackagesV3?.data?.packages ||
|
|
180
|
+
baselineJob?.insights?.webpack?.duplicatePackages?.data ||
|
|
181
|
+
{};
|
|
182
|
+
|
|
61
183
|
if (!count) {
|
|
62
184
|
return {
|
|
185
|
+
insights: {
|
|
186
|
+
duplicatePackagesV3: getDuplicatePackagesInsight({}, baselineDuplicatePackages),
|
|
187
|
+
},
|
|
63
188
|
metrics: {
|
|
64
189
|
duplicatePackagesCount: {
|
|
65
190
|
value: count,
|
|
@@ -68,7 +193,12 @@ export const extractModulesPackagesDuplicate = (_: any, currentExtractedData: an
|
|
|
68
193
|
};
|
|
69
194
|
}
|
|
70
195
|
|
|
71
|
-
|
|
196
|
+
// Group duplicate packages by name and order children by value
|
|
197
|
+
const duplicatePackagesByName: Record<string, DuplicatePackageGroup> = orderBy(
|
|
198
|
+
duplicatePackages,
|
|
199
|
+
'value',
|
|
200
|
+
'desc',
|
|
201
|
+
).reduce(
|
|
72
202
|
(agg, { name, ...duplicatePackageData }: DuplicatePackageGroup) => ({
|
|
73
203
|
...agg,
|
|
74
204
|
[name]: {
|
|
@@ -80,21 +210,27 @@ export const extractModulesPackagesDuplicate = (_: any, currentExtractedData: an
|
|
|
80
210
|
);
|
|
81
211
|
|
|
82
212
|
// Generate v2 data structure
|
|
83
|
-
// @TODO remove in
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
213
|
+
// @TODO remove in v5.0
|
|
214
|
+
const duplicatePackagesData: JobInsightDuplicatePackagesData = {};
|
|
215
|
+
|
|
216
|
+
Object.entries(duplicatePackagesByName).forEach(([packageName, packageData]) => {
|
|
217
|
+
if (!duplicatePackagesData[packageName]) {
|
|
218
|
+
duplicatePackagesData[packageName] = [];
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
duplicatePackagesData[packageName] = packageData.children.map(({ id }) => id);
|
|
222
|
+
});
|
|
91
223
|
|
|
92
224
|
return {
|
|
93
225
|
insights: {
|
|
94
226
|
duplicatePackages: {
|
|
95
227
|
type: InsightType.WARNING,
|
|
96
|
-
data,
|
|
228
|
+
data: duplicatePackagesData,
|
|
97
229
|
},
|
|
230
|
+
duplicatePackagesV3: getDuplicatePackagesInsight(
|
|
231
|
+
duplicatePackagesData,
|
|
232
|
+
baselineDuplicatePackages,
|
|
233
|
+
),
|
|
98
234
|
},
|
|
99
235
|
metrics: {
|
|
100
236
|
duplicatePackagesCount: {
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { InsightType, Job, JobInsights } from '../../constants';
|
|
2
|
+
import { Packages } from '../types';
|
|
3
|
+
|
|
4
|
+
interface ModulesPackagesNewData {
|
|
5
|
+
insights?: {
|
|
6
|
+
newPackages: JobInsights['webpack']['newPackages'];
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const getPackageNames = (packages: Packages): Set<string> => {
|
|
11
|
+
const result: Set<string> = new Set();
|
|
12
|
+
|
|
13
|
+
Object.values(packages).forEach((metricPackage) => {
|
|
14
|
+
result.add(metricPackage.name);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
return result;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const getText = (newPackages: Array<string>) => {
|
|
21
|
+
if (newPackages.length === 1) {
|
|
22
|
+
return `Bundle introduced one new package: ${newPackages[0]}`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const firstNewPackages = newPackages.slice(0, 3);
|
|
26
|
+
const otherPackages = newPackages.slice(3);
|
|
27
|
+
|
|
28
|
+
const text = `Bundle introduced ${newPackages.length} new packages: ${firstNewPackages.join(', ')}`;
|
|
29
|
+
|
|
30
|
+
if (otherPackages.length === 0) {
|
|
31
|
+
return text;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (otherPackages.length === 1) {
|
|
35
|
+
return `${text} and one more`;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return `${text} and ${otherPackages.length} more`;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const extractModulesPackagesNewInsight = (
|
|
42
|
+
_: any,
|
|
43
|
+
currentExtractedData: any,
|
|
44
|
+
baselineJob?: Job,
|
|
45
|
+
): ModulesPackagesNewData | null => {
|
|
46
|
+
const currentMetricPackages = currentExtractedData?.metrics?.packages as Packages;
|
|
47
|
+
const baselineMetricPackages = baselineJob?.metrics?.webpack?.packages as Packages;
|
|
48
|
+
|
|
49
|
+
// Skip insight when the baseline data is missing
|
|
50
|
+
if (!baselineMetricPackages) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const currentPackages = getPackageNames(currentMetricPackages);
|
|
55
|
+
const baselinePackages = getPackageNames(baselineMetricPackages);
|
|
56
|
+
|
|
57
|
+
const newPackages: Array<string> = [];
|
|
58
|
+
|
|
59
|
+
currentPackages.forEach((packageName) => {
|
|
60
|
+
if (!baselinePackages.has(packageName)) {
|
|
61
|
+
newPackages.push(packageName);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
if (newPackages.length === 0) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return {
|
|
70
|
+
insights: {
|
|
71
|
+
newPackages: {
|
|
72
|
+
type: InsightType.WARNING,
|
|
73
|
+
data: {
|
|
74
|
+
text: getText(newPackages),
|
|
75
|
+
packages: newPackages,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
};
|
package/types/config/index.d.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
export * from "./component-links";
|
|
2
2
|
export * from "./file-types";
|
|
3
|
-
export * from "./insights";
|
|
4
3
|
export * from "./metrics";
|
|
5
4
|
export * from "./delta";
|
|
6
5
|
export const PACKAGES_SEPARATOR: ":";
|
|
7
6
|
export const PACKAGE_ID_SEPARATOR: "~";
|
|
8
|
-
export const SOURCE_PATH_WEBPACK_STATS: "webpack";
|
|
9
|
-
export const SOURCE_PATH_LIGHTHOUSE: "lighthouse";
|
|
10
|
-
export const SOURCE_PATH_BROWSERTIME: "browsertime";
|
|
11
|
-
export const SOURCE_PATHS: string[];
|
package/types/constants.d.ts
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
|
+
export declare enum Source {
|
|
2
|
+
webpack = "webpack",
|
|
3
|
+
lighthouse = "lighthouse",
|
|
4
|
+
browsertime = "browsertime"
|
|
5
|
+
}
|
|
1
6
|
export type SourceData = Record<string, unknown>;
|
|
7
|
+
export declare enum InsightType {
|
|
8
|
+
ERROR = "error",
|
|
9
|
+
INFO = "info",
|
|
10
|
+
WARNING = "warning"
|
|
11
|
+
}
|
|
2
12
|
export declare enum MetricTypeType {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
13
|
+
METRIC_TYPE_NUMERIC = "METRIC_TYPE_NUMERIC",
|
|
14
|
+
METRIC_TYPE_SCORE = "METRIC_TYPE_SCORE",
|
|
15
|
+
METRIC_TYPE_FILE_SIZE = "METRIC_TYPE_FILE_SIZE",
|
|
16
|
+
METRIC_TYPE_DURATION = "METRIC_TYPE_DURATION",
|
|
17
|
+
METRIC_TYPE_PERCENTAGE = "METRIC_TYPE_PERCENTAGE"
|
|
8
18
|
}
|
|
9
19
|
export interface MetricTypeConfig {
|
|
10
20
|
label: string;
|
|
@@ -36,20 +46,53 @@ export interface MetricRunInfo {
|
|
|
36
46
|
displayDelta?: string;
|
|
37
47
|
displayDeltaPercentage?: string;
|
|
38
48
|
}
|
|
49
|
+
export type JobSection<T = object> = Record<Source, T>;
|
|
50
|
+
export declare enum JobSectionId {
|
|
51
|
+
meta = "meta",
|
|
52
|
+
insights = "insights",
|
|
53
|
+
summary = "summary",
|
|
54
|
+
metrics = "metrics",
|
|
55
|
+
rawData = "rawData"
|
|
56
|
+
}
|
|
39
57
|
export interface JobSummaryItem {
|
|
40
58
|
baseline: number;
|
|
41
59
|
current: number;
|
|
42
60
|
}
|
|
61
|
+
export interface JobInsight<T = object> {
|
|
62
|
+
type: InsightType;
|
|
63
|
+
data: T & {
|
|
64
|
+
text?: string;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export interface JobInsightAssetsSizeTotalData {
|
|
68
|
+
md: string;
|
|
69
|
+
info: MetricRunInfo;
|
|
70
|
+
}
|
|
71
|
+
export type JobInsightDuplicatePackagesData = Record<string, Array<string>>;
|
|
72
|
+
export interface JobInsightDuplicatePackagesV3Data {
|
|
73
|
+
packages: Record<string, Array<string>>;
|
|
74
|
+
}
|
|
75
|
+
export interface JobInsightNewPackagesData {
|
|
76
|
+
packages: Array<string>;
|
|
77
|
+
}
|
|
43
78
|
export type JobSummarySource = Record<string, JobSummaryItem>;
|
|
44
|
-
export type JobSummary =
|
|
79
|
+
export type JobSummary = JobSection<JobSummarySource>;
|
|
80
|
+
export interface JobInsights {
|
|
81
|
+
[Source.webpack]: {
|
|
82
|
+
assetsSizeTotal: JobInsight<JobInsightAssetsSizeTotalData>;
|
|
83
|
+
duplicatePackages?: JobInsight<JobInsightDuplicatePackagesData>;
|
|
84
|
+
duplicatePackagesV3?: JobInsight<JobInsightDuplicatePackagesV3Data>;
|
|
85
|
+
newPackages?: JobInsight<JobInsightNewPackagesData>;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
45
88
|
export type JobMetricsSource = Record<string, MetricRun | Record<string, MetricRun>>;
|
|
46
|
-
export type JobMetrics =
|
|
89
|
+
export type JobMetrics = JobSection<JobMetricsSource>;
|
|
47
90
|
export interface JobData {
|
|
48
|
-
meta?:
|
|
49
|
-
insights?:
|
|
50
|
-
summary?: JobSummary;
|
|
51
|
-
metrics?: JobMetrics;
|
|
52
|
-
rawData?:
|
|
91
|
+
[JobSectionId.meta]?: JobSection;
|
|
92
|
+
[JobSectionId.insights]?: JobInsights;
|
|
93
|
+
[JobSectionId.summary]?: JobSummary;
|
|
94
|
+
[JobSectionId.metrics]?: JobMetrics;
|
|
95
|
+
[JobSectionId.rawData]?: JobSection;
|
|
53
96
|
}
|
|
54
97
|
export interface Job extends JobData {
|
|
55
98
|
internalBuildNumber: number;
|
|
@@ -25,8 +25,9 @@ export declare const BUNDLE_MODULES: ComponentLink;
|
|
|
25
25
|
export declare const BUNDLE_MODULES_DUPLICATE: ComponentLink;
|
|
26
26
|
export declare const getBundleModulesBySearch: (search: string) => ComponentLink;
|
|
27
27
|
export declare const getBundleModulesByChunk: (chunkIds: Array<string>, chunkId: string, fileType?: string) => ComponentLink;
|
|
28
|
-
export declare const
|
|
28
|
+
export declare const BUNDLE_PACKAGES_COUNT: ComponentLink;
|
|
29
29
|
export declare const BUNDLE_PACKAGES_DUPLICATE: ComponentLink;
|
|
30
|
+
export declare const BUNDLE_PACKAGES_DUPLICATE_NEW: ComponentLink;
|
|
30
31
|
export declare const getBundleAssetsFileTypeComponentLink: (fileType: string, label: string) => ComponentLink;
|
|
31
32
|
export declare const getBundlePackagesByNameComponentLink: (search: string) => ComponentLink;
|
|
32
33
|
export declare const getComponentStateQueryString: (params?: {}) => string;
|
|
@@ -5,9 +5,9 @@ export function extractAssetsSizeTotalInsight(_: any, currentExtractedData: any,
|
|
|
5
5
|
data: {
|
|
6
6
|
text: string;
|
|
7
7
|
md: string;
|
|
8
|
-
info: import("
|
|
8
|
+
info: import("../../constants").MetricRunInfo;
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
-
import { InsightType } from "../../
|
|
13
|
+
import { InsightType } from "../../constants";
|
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
metrics: {
|
|
4
|
-
duplicatePackagesCount: {
|
|
5
|
-
value: number;
|
|
6
|
-
};
|
|
7
|
-
};
|
|
8
|
-
insights?: undefined;
|
|
9
|
-
} | {
|
|
1
|
+
import { Job, JobInsight, JobInsightDuplicatePackagesV3Data, JobInsights, MetricRun } from '../../constants';
|
|
2
|
+
interface ModulesPackagesDuplicateData {
|
|
10
3
|
insights: {
|
|
11
|
-
duplicatePackages
|
|
12
|
-
|
|
13
|
-
data: {};
|
|
14
|
-
};
|
|
4
|
+
duplicatePackages?: JobInsights['webpack']['duplicatePackages'];
|
|
5
|
+
duplicatePackagesV3: JobInsights['webpack']['duplicatePackagesV3'];
|
|
15
6
|
};
|
|
16
7
|
metrics: {
|
|
17
|
-
duplicatePackagesCount:
|
|
18
|
-
value: number;
|
|
19
|
-
};
|
|
8
|
+
duplicatePackagesCount: MetricRun;
|
|
20
9
|
};
|
|
21
|
-
}
|
|
10
|
+
}
|
|
11
|
+
export declare const getDuplicatePackagesInsight: (duplicatePackagesMap: Record<string, Array<string>>, baselineDuplicatePackagesMap?: Record<string, Array<string>>) => JobInsight<JobInsightDuplicatePackagesV3Data>;
|
|
12
|
+
export declare const extractModulesPackagesDuplicate: (_: any, currentExtractedData: any, baselineJob?: Job) => ModulesPackagesDuplicateData;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Job, JobInsights } from '../../constants';
|
|
2
|
+
interface ModulesPackagesNewData {
|
|
3
|
+
insights?: {
|
|
4
|
+
newPackages: JobInsights['webpack']['newPackages'];
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export declare const extractModulesPackagesNewInsight: (_: any, currentExtractedData: any, baselineJob?: Job) => ModulesPackagesNewData | null;
|
|
8
|
+
export {};
|
package/lib/config/insights.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InsightType = void 0;
|
|
4
|
-
var InsightType;
|
|
5
|
-
(function (InsightType) {
|
|
6
|
-
InsightType["ERROR"] = "ERROR";
|
|
7
|
-
InsightType["INFO"] = "INFO";
|
|
8
|
-
InsightType["WARNING"] = "WARNING";
|
|
9
|
-
})(InsightType = exports.InsightType || (exports.InsightType = {}));
|
|
10
|
-
//# sourceMappingURL=insights.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/config/insights.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,kCAAmB,CAAA;AACrB,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/config/insights.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,kCAAmB,CAAA;AACrB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
|
package/src/config/insights.ts
DELETED