@bundle-stats/utils 4.2.1 → 4.2.3-beta.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/lib/utils/insights.js +19 -1
- package/lib/utils/insights.js.map +1 -1
- package/lib/webpack/extract/modules-packages-duplicate.js +15 -9
- package/lib/webpack/extract/modules-packages-duplicate.js.map +1 -1
- package/lib-esm/utils/insights.js +15 -0
- package/lib-esm/utils/insights.js.map +1 -1
- package/lib-esm/webpack/extract/modules-packages-duplicate.js +15 -9
- package/lib-esm/webpack/extract/modules-packages-duplicate.js.map +1 -1
- package/package.json +6 -6
- package/src/constants.ts +5 -0
- package/src/utils/insights.ts +27 -4
- package/src/webpack/extract/modules-packages-duplicate.ts +25 -16
- package/types/constants.d.ts +4 -0
- package/types/utils/insights.d.ts +4 -3
- package/types/webpack/extract/modules-packages-duplicate.d.ts +3 -3
package/lib/utils/insights.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getInsightList = void 0;
|
|
6
|
+
exports.getChangedInsights = exports.getInsightList = void 0;
|
|
7
|
+
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
4
8
|
const constants_1 = require("../constants");
|
|
5
9
|
const component_links_1 = require("./component-links");
|
|
6
10
|
const getInsightList = (insights) => {
|
|
@@ -33,4 +37,18 @@ const getInsightList = (insights) => {
|
|
|
33
37
|
];
|
|
34
38
|
};
|
|
35
39
|
exports.getInsightList = getInsightList;
|
|
40
|
+
const getChangedInsights = (normalizedInsights) => {
|
|
41
|
+
const res = {};
|
|
42
|
+
if (normalizedInsights.duplicatePackages?.type === constants_1.InsightType.ERROR) {
|
|
43
|
+
res.duplicatePackages = normalizedInsights.duplicatePackages;
|
|
44
|
+
}
|
|
45
|
+
if (normalizedInsights.newPackages) {
|
|
46
|
+
res.newPackages = normalizedInsights.newPackages;
|
|
47
|
+
}
|
|
48
|
+
if ((0, isEmpty_1.default)(res)) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return res;
|
|
52
|
+
};
|
|
53
|
+
exports.getChangedInsights = getChangedInsights;
|
|
36
54
|
//# sourceMappingURL=insights.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/utils/insights.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/utils/insights.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqC;AAErC,4CAAwE;AACxE,uDAI2B;AAoBpB,MAAM,cAAc,GAAG,CAAC,QAAyB,EAA0B,EAAE;IAClF,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IAEpD,MAAM,eAAe,GAAgD;QACnE,CAAC,uBAAW,CAAC,KAAK,CAAC,EAAE,EAAE;QACvB,CAAC,uBAAW,CAAC,OAAO,CAAC,EAAE,EAAE;QACzB,CAAC,uBAAW,CAAC,IAAI,CAAC,EAAE,EAAE;KACvB,CAAC;IAEF,IAAI,iBAAiB,EAAE;QACrB,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAC3C,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EACF,iBAAiB,CAAC,IAAI,KAAK,uBAAW,CAAC,OAAO;gBAC5C,CAAC,CAAC,2CAAyB;gBAC3B,CAAC,CAAC,mDAAiC;SACxC,CAAC,CAAC;KACJ;IAED,IAAI,WAAW,EAAE;QACf,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YACrC,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,yCAAuB;SAC9B,CAAC,CAAC;KACJ;IAED,OAAO;QACL,GAAG,CAAC,eAAe,CAAC,uBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7C,GAAG,CAAC,eAAe,CAAC,uBAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/C,GAAG,CAAC,eAAe,CAAC,uBAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,cAAc,kBAiCzB;AAKK,MAAM,kBAAkB,GAAG,CAAC,kBAAmC,EAA0B,EAAE;IAChG,MAAM,GAAG,GAAoB,EAAE,CAAC;IAEhC,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,IAAI,KAAK,uBAAW,CAAC,KAAK,EAAE;QACpE,GAAG,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,iBAAiB,CAAC;KAC9D;IAED,IAAI,kBAAkB,CAAC,WAAW,EAAE;QAClC,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC;KAClD;IAED,IAAI,IAAA,iBAAO,EAAC,GAAG,CAAC,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAhBW,QAAA,kBAAkB,sBAgB7B"}
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.extractModulesPackagesDuplicate = exports.getDuplicatePackagesInsight = void 0;
|
|
7
|
+
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
7
8
|
const map_1 = __importDefault(require("lodash/map"));
|
|
8
9
|
const orderBy_1 = __importDefault(require("lodash/orderBy"));
|
|
9
10
|
const sum_1 = __importDefault(require("lodash/sum"));
|
|
@@ -42,14 +43,14 @@ const getDuplicatePackagesInsight = (duplicatePackagesMap, baselineDuplicatePack
|
|
|
42
43
|
const duplicateInstancesCount = duplicateInstances.length;
|
|
43
44
|
const newDuplicateInstancesCount = newDuplicateInstances.length;
|
|
44
45
|
const removedDuplicateInstancesCount = removedDuplicateInstances.length;
|
|
45
|
-
let text;
|
|
46
|
-
let insightType;
|
|
46
|
+
let text = '';
|
|
47
|
+
let insightType = null;
|
|
47
48
|
if (newDuplicateInstancesCount > 0 && removedDuplicateInstancesCount > 0) {
|
|
48
49
|
const item = newDuplicateInstancesCount > 1 || removedDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
49
50
|
text = `Bundle introduced ${newDuplicateInstancesCount} and removed ${removedDuplicateInstancesCount} duplicate ${item}`;
|
|
50
51
|
insightType = constants_1.InsightType.ERROR;
|
|
51
52
|
}
|
|
52
|
-
else if (newDuplicateInstancesCount > 0 && baselineDuplicatePackagesMap) {
|
|
53
|
+
else if (newDuplicateInstancesCount > 0 && !(0, isEmpty_1.default)(baselineDuplicatePackagesMap)) {
|
|
53
54
|
const item = newDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
54
55
|
text = `Bundle introduced ${newDuplicateInstancesCount} duplicate ${item}`;
|
|
55
56
|
insightType = constants_1.InsightType.ERROR;
|
|
@@ -78,8 +79,9 @@ const getDuplicatePackagesInsight = (duplicatePackagesMap, baselineDuplicatePack
|
|
|
78
79
|
insightType = constants_1.InsightType.WARNING;
|
|
79
80
|
}
|
|
80
81
|
else {
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
}
|
|
83
|
+
if (!text || !insightType) {
|
|
84
|
+
return null;
|
|
83
85
|
}
|
|
84
86
|
return {
|
|
85
87
|
type: insightType,
|
|
@@ -120,11 +122,14 @@ const extractModulesPackagesDuplicate = (_, currentExtractedData, baselineJob) =
|
|
|
120
122
|
const baselineDuplicatePackages = baselineJob?.insights?.webpack?.duplicatePackagesV3?.data?.packages ||
|
|
121
123
|
baselineJob?.insights?.webpack?.duplicatePackages?.data ||
|
|
122
124
|
{};
|
|
125
|
+
const noDuplicatesDuplicatePackagesV3 = (0, exports.getDuplicatePackagesInsight)({}, baselineDuplicatePackages);
|
|
123
126
|
if (!count) {
|
|
124
127
|
return {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
...(noDuplicatesDuplicatePackagesV3 && {
|
|
129
|
+
insights: {
|
|
130
|
+
duplicatePackagesV3: noDuplicatesDuplicatePackagesV3,
|
|
131
|
+
},
|
|
132
|
+
}),
|
|
128
133
|
metrics: {
|
|
129
134
|
duplicatePackagesCount: {
|
|
130
135
|
value: count,
|
|
@@ -146,13 +151,14 @@ const extractModulesPackagesDuplicate = (_, currentExtractedData, baselineJob) =
|
|
|
146
151
|
}
|
|
147
152
|
duplicatePackagesData[packageName] = packageData.children.map(({ id }) => id);
|
|
148
153
|
});
|
|
154
|
+
const duplicatePackagesV3 = (0, exports.getDuplicatePackagesInsight)(duplicatePackagesData, baselineDuplicatePackages);
|
|
149
155
|
return {
|
|
150
156
|
insights: {
|
|
151
157
|
duplicatePackages: {
|
|
152
158
|
type: constants_1.InsightType.WARNING,
|
|
153
159
|
data: duplicatePackagesData,
|
|
154
160
|
},
|
|
155
|
-
duplicatePackagesV3
|
|
161
|
+
...(duplicatePackagesV3 && { duplicatePackagesV3 }),
|
|
156
162
|
},
|
|
157
163
|
metrics: {
|
|
158
164
|
duplicatePackagesCount: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules-packages-duplicate.js","sourceRoot":"","sources":["../../../src/webpack/extract/modules-packages-duplicate.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA6B;AAC7B,6DAAqC;AACrC,qDAA6B;AAE7B,+CAQyB;AAwBlB,MAAM,2BAA2B,GAAG,CACzC,oBAAmD,EACnD,4BAA4D,
|
|
1
|
+
{"version":3,"file":"modules-packages-duplicate.js","sourceRoot":"","sources":["../../../src/webpack/extract/modules-packages-duplicate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import isEmpty from 'lodash/isEmpty';
|
|
1
2
|
import { InsightType } from '../constants';
|
|
2
3
|
import { BUNDLE_PACKAGES_DUPLICATE, BUNDLE_PACKAGES_CHANGED, BUNDLE_PACKAGES_DUPLICATE_CHANGED, } from './component-links';
|
|
3
4
|
export const getInsightList = (insights) => {
|
|
@@ -29,4 +30,18 @@ export const getInsightList = (insights) => {
|
|
|
29
30
|
...(insightsByLevel[InsightType.INFO] || []),
|
|
30
31
|
];
|
|
31
32
|
};
|
|
33
|
+
export const getChangedInsights = (normalizedInsights) => {
|
|
34
|
+
var _a;
|
|
35
|
+
const res = {};
|
|
36
|
+
if (((_a = normalizedInsights.duplicatePackages) === null || _a === void 0 ? void 0 : _a.type) === InsightType.ERROR) {
|
|
37
|
+
res.duplicatePackages = normalizedInsights.duplicatePackages;
|
|
38
|
+
}
|
|
39
|
+
if (normalizedInsights.newPackages) {
|
|
40
|
+
res.newPackages = normalizedInsights.newPackages;
|
|
41
|
+
}
|
|
42
|
+
if (isEmpty(res)) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return res;
|
|
46
|
+
};
|
|
32
47
|
//# sourceMappingURL=insights.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/utils/insights.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/utils/insights.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,WAAW,EAA+B,MAAM,cAAc,CAAC;AACxE,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,iCAAiC,GAClC,MAAM,mBAAmB,CAAC;AAoB3B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAyB,EAA0B,EAAE;IAClF,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IAEpD,MAAM,eAAe,GAAgD;QACnE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE;QACvB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE;QACzB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE;KACvB,CAAC;IAEF,IAAI,iBAAiB,EAAE;QACrB,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAC3C,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EACF,iBAAiB,CAAC,IAAI,KAAK,WAAW,CAAC,OAAO;gBAC5C,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,iCAAiC;SACxC,CAAC,CAAC;KACJ;IAED,IAAI,WAAW,EAAE;QACf,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YACrC,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,uBAAuB;SAC9B,CAAC,CAAC;KACJ;IAED,OAAO;QACL,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7C,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/C,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,kBAAmC,EAA0B,EAAE;;IAChG,MAAM,GAAG,GAAoB,EAAE,CAAC;IAEhC,IAAI,CAAA,MAAA,kBAAkB,CAAC,iBAAiB,0CAAE,IAAI,MAAK,WAAW,CAAC,KAAK,EAAE;QACpE,GAAG,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,iBAAiB,CAAC;KAC9D;IAED,IAAI,kBAAkB,CAAC,WAAW,EAAE;QAClC,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC;KAClD;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import isEmpty from 'lodash/isEmpty';
|
|
1
2
|
import map from 'lodash/map';
|
|
2
3
|
import orderBy from 'lodash/orderBy';
|
|
3
4
|
import sum from 'lodash/sum';
|
|
@@ -38,14 +39,14 @@ export const getDuplicatePackagesInsight = (duplicatePackagesMap, baselineDuplic
|
|
|
38
39
|
const duplicateInstancesCount = duplicateInstances.length;
|
|
39
40
|
const newDuplicateInstancesCount = newDuplicateInstances.length;
|
|
40
41
|
const removedDuplicateInstancesCount = removedDuplicateInstances.length;
|
|
41
|
-
let text;
|
|
42
|
-
let insightType;
|
|
42
|
+
let text = '';
|
|
43
|
+
let insightType = null;
|
|
43
44
|
if (newDuplicateInstancesCount > 0 && removedDuplicateInstancesCount > 0) {
|
|
44
45
|
const item = newDuplicateInstancesCount > 1 || removedDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
45
46
|
text = `Bundle introduced ${newDuplicateInstancesCount} and removed ${removedDuplicateInstancesCount} duplicate ${item}`;
|
|
46
47
|
insightType = InsightType.ERROR;
|
|
47
48
|
}
|
|
48
|
-
else if (newDuplicateInstancesCount > 0 && baselineDuplicatePackagesMap) {
|
|
49
|
+
else if (newDuplicateInstancesCount > 0 && !isEmpty(baselineDuplicatePackagesMap)) {
|
|
49
50
|
const item = newDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
50
51
|
text = `Bundle introduced ${newDuplicateInstancesCount} duplicate ${item}`;
|
|
51
52
|
insightType = InsightType.ERROR;
|
|
@@ -74,8 +75,9 @@ export const getDuplicatePackagesInsight = (duplicatePackagesMap, baselineDuplic
|
|
|
74
75
|
insightType = InsightType.WARNING;
|
|
75
76
|
}
|
|
76
77
|
else {
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
}
|
|
79
|
+
if (!text || !insightType) {
|
|
80
|
+
return null;
|
|
79
81
|
}
|
|
80
82
|
return {
|
|
81
83
|
type: insightType,
|
|
@@ -116,11 +118,14 @@ export const extractModulesPackagesDuplicate = (_, currentExtractedData, baselin
|
|
|
116
118
|
const baselineDuplicatePackages = ((_e = (_d = (_c = (_b = baselineJob === null || baselineJob === void 0 ? void 0 : baselineJob.insights) === null || _b === void 0 ? void 0 : _b.webpack) === null || _c === void 0 ? void 0 : _c.duplicatePackagesV3) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.packages) ||
|
|
117
119
|
((_h = (_g = (_f = baselineJob === null || baselineJob === void 0 ? void 0 : baselineJob.insights) === null || _f === void 0 ? void 0 : _f.webpack) === null || _g === void 0 ? void 0 : _g.duplicatePackages) === null || _h === void 0 ? void 0 : _h.data) ||
|
|
118
120
|
{};
|
|
121
|
+
const noDuplicatesDuplicatePackagesV3 = getDuplicatePackagesInsight({}, baselineDuplicatePackages);
|
|
119
122
|
if (!count) {
|
|
120
123
|
return {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
+
...(noDuplicatesDuplicatePackagesV3 && {
|
|
125
|
+
insights: {
|
|
126
|
+
duplicatePackagesV3: noDuplicatesDuplicatePackagesV3,
|
|
127
|
+
},
|
|
128
|
+
}),
|
|
124
129
|
metrics: {
|
|
125
130
|
duplicatePackagesCount: {
|
|
126
131
|
value: count,
|
|
@@ -142,13 +147,14 @@ export const extractModulesPackagesDuplicate = (_, currentExtractedData, baselin
|
|
|
142
147
|
}
|
|
143
148
|
duplicatePackagesData[packageName] = packageData.children.map(({ id }) => id);
|
|
144
149
|
});
|
|
150
|
+
const duplicatePackagesV3 = getDuplicatePackagesInsight(duplicatePackagesData, baselineDuplicatePackages);
|
|
145
151
|
return {
|
|
146
152
|
insights: {
|
|
147
153
|
duplicatePackages: {
|
|
148
154
|
type: InsightType.WARNING,
|
|
149
155
|
data: duplicatePackagesData,
|
|
150
156
|
},
|
|
151
|
-
duplicatePackagesV3
|
|
157
|
+
...(duplicatePackagesV3 && { duplicatePackagesV3 }),
|
|
152
158
|
},
|
|
153
159
|
metrics: {
|
|
154
160
|
duplicatePackagesCount: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules-packages-duplicate.js","sourceRoot":"","sources":["../../../src/webpack/extract/modules-packages-duplicate.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EACL,WAAW,GAOZ,MAAM,iBAAiB,CAAC;AAwBzB,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,oBAAmD,EACnD,4BAA4D,
|
|
1
|
+
{"version":3,"file":"modules-packages-duplicate.js","sourceRoot":"","sources":["../../../src/webpack/extract/modules-packages-duplicate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bundle-stats/utils",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.3-beta.0",
|
|
4
4
|
"description": "BundleStats utils",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
},
|
|
36
36
|
"homepage": "https://github.com/relative-ci/bundle-stats/blob/master/packages/utils#readme",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@bundle-stats/plugin-webpack-filter": "^4.2.
|
|
39
|
-
"@bundle-stats/plugin-webpack-validate": "^4.2.
|
|
38
|
+
"@bundle-stats/plugin-webpack-filter": "^4.2.3-beta.0",
|
|
39
|
+
"@bundle-stats/plugin-webpack-validate": "^4.2.3-beta.0",
|
|
40
40
|
"query-string": "7.1.3",
|
|
41
41
|
"serialize-query-params": "2.0.2",
|
|
42
42
|
"use-query-params": "2.2.0"
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"@types/jest": "29.4.0",
|
|
46
46
|
"@types/lodash": "4.14.191",
|
|
47
47
|
"core-js": "3.28.0",
|
|
48
|
-
"jest": "29.4.
|
|
49
|
-
"jest-cli": "29.4.
|
|
48
|
+
"jest": "29.4.3",
|
|
49
|
+
"jest-cli": "29.4.3",
|
|
50
50
|
"jest-date-mock": "1.0.8",
|
|
51
51
|
"lodash": "4.17.21",
|
|
52
52
|
"regenerator-runtime": "0.13.11",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"core-js": "^3.0.0",
|
|
59
59
|
"lodash": "^4.0.0"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "a4664a4c6318b73774aae3666f5ae6c778025ea1"
|
|
62
62
|
}
|
package/src/constants.ts
CHANGED
|
@@ -101,6 +101,11 @@ export interface JobInsights {
|
|
|
101
101
|
};
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
export interface JobInsightsInfo {
|
|
105
|
+
duplicatePackages?: JobInsights['webpack']['duplicatePackagesV3'];
|
|
106
|
+
newPackages?: JobInsights['webpack']['newPackages'];
|
|
107
|
+
}
|
|
108
|
+
|
|
104
109
|
export type JobMetricsSource = Record<string, MetricRun | Record<string, MetricRun>>;
|
|
105
110
|
export type JobMetrics = JobSection<JobMetricsSource>;
|
|
106
111
|
|
package/src/utils/insights.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import isEmpty from 'lodash/isEmpty';
|
|
2
|
+
|
|
3
|
+
import { InsightType, JobInsight, JobInsightsInfo } from '../constants';
|
|
2
4
|
import {
|
|
3
5
|
BUNDLE_PACKAGES_DUPLICATE,
|
|
4
6
|
BUNDLE_PACKAGES_CHANGED,
|
|
5
7
|
BUNDLE_PACKAGES_DUPLICATE_CHANGED,
|
|
6
8
|
} from './component-links';
|
|
7
9
|
|
|
8
|
-
interface
|
|
10
|
+
interface InsightListItem {
|
|
9
11
|
/**
|
|
10
12
|
* Inight name
|
|
11
13
|
*/
|
|
@@ -23,10 +25,10 @@ interface InsightEntry {
|
|
|
23
25
|
/**
|
|
24
26
|
* Get the insigh list ordered by level type
|
|
25
27
|
*/
|
|
26
|
-
export const getInsightList = (insights:
|
|
28
|
+
export const getInsightList = (insights: JobInsightsInfo): Array<InsightListItem> => {
|
|
27
29
|
const { duplicatePackages, newPackages } = insights;
|
|
28
30
|
|
|
29
|
-
const insightsByLevel: Record<InsightType, Array<
|
|
31
|
+
const insightsByLevel: Record<InsightType, Array<InsightListItem>> = {
|
|
30
32
|
[InsightType.ERROR]: [],
|
|
31
33
|
[InsightType.WARNING]: [],
|
|
32
34
|
[InsightType.INFO]: [],
|
|
@@ -57,3 +59,24 @@ export const getInsightList = (insights: Partial<JobInsights['webpack']>): Array
|
|
|
57
59
|
...(insightsByLevel[InsightType.INFO] || []),
|
|
58
60
|
];
|
|
59
61
|
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Show only the insights that are introduced by a change
|
|
65
|
+
*/
|
|
66
|
+
export const getChangedInsights = (normalizedInsights: JobInsightsInfo): JobInsightsInfo | null => {
|
|
67
|
+
const res: JobInsightsInfo = {};
|
|
68
|
+
|
|
69
|
+
if (normalizedInsights.duplicatePackages?.type === InsightType.ERROR) {
|
|
70
|
+
res.duplicatePackages = normalizedInsights.duplicatePackages;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (normalizedInsights.newPackages) {
|
|
74
|
+
res.newPackages = normalizedInsights.newPackages;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (isEmpty(res)) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return res;
|
|
82
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import isEmpty from 'lodash/isEmpty';
|
|
1
2
|
import map from 'lodash/map';
|
|
2
3
|
import orderBy from 'lodash/orderBy';
|
|
3
4
|
import sum from 'lodash/sum';
|
|
@@ -25,9 +26,9 @@ interface DuplicatePackageGroup {
|
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
interface ModulesPackagesDuplicateData {
|
|
28
|
-
insights
|
|
29
|
+
insights?: {
|
|
29
30
|
duplicatePackages?: JobInsights['webpack']['duplicatePackages'];
|
|
30
|
-
duplicatePackagesV3
|
|
31
|
+
duplicatePackagesV3?: JobInsights['webpack']['duplicatePackagesV3'];
|
|
31
32
|
};
|
|
32
33
|
metrics: {
|
|
33
34
|
duplicatePackagesCount: MetricRun;
|
|
@@ -37,7 +38,7 @@ interface ModulesPackagesDuplicateData {
|
|
|
37
38
|
export const getDuplicatePackagesInsight = (
|
|
38
39
|
duplicatePackagesMap: Record<string, Array<string>>,
|
|
39
40
|
baselineDuplicatePackagesMap?: Record<string, Array<string>>,
|
|
40
|
-
): JobInsight<JobInsightDuplicatePackagesV3Data> => {
|
|
41
|
+
): JobInsight<JobInsightDuplicatePackagesV3Data> | null => {
|
|
41
42
|
const duplicateInstances: Array<string> = [];
|
|
42
43
|
const baselineDuplicateInstances: Array<string> = [];
|
|
43
44
|
const newDuplicateInstances: Array<string> = [];
|
|
@@ -81,8 +82,8 @@ export const getDuplicatePackagesInsight = (
|
|
|
81
82
|
const newDuplicateInstancesCount = newDuplicateInstances.length;
|
|
82
83
|
const removedDuplicateInstancesCount = removedDuplicateInstances.length;
|
|
83
84
|
|
|
84
|
-
let text
|
|
85
|
-
let insightType: InsightType;
|
|
85
|
+
let text = '';
|
|
86
|
+
let insightType: InsightType | null = null;
|
|
86
87
|
|
|
87
88
|
if (newDuplicateInstancesCount > 0 && removedDuplicateInstancesCount > 0) {
|
|
88
89
|
// New duplicate packages and removed duplicates
|
|
@@ -90,7 +91,7 @@ export const getDuplicatePackagesInsight = (
|
|
|
90
91
|
newDuplicateInstancesCount > 1 || removedDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
91
92
|
text = `Bundle introduced ${newDuplicateInstancesCount} and removed ${removedDuplicateInstancesCount} duplicate ${item}`;
|
|
92
93
|
insightType = InsightType.ERROR;
|
|
93
|
-
} else if (newDuplicateInstancesCount > 0 && baselineDuplicatePackagesMap) {
|
|
94
|
+
} else if (newDuplicateInstancesCount > 0 && !isEmpty(baselineDuplicatePackagesMap)) {
|
|
94
95
|
// New duplicate packages and baseline comparison
|
|
95
96
|
const item = newDuplicateInstancesCount > 1 ? 'packages' : 'package';
|
|
96
97
|
text = `Bundle introduced ${newDuplicateInstancesCount} duplicate ${item}`;
|
|
@@ -121,9 +122,11 @@ export const getDuplicatePackagesInsight = (
|
|
|
121
122
|
text = `Bundle contains ${duplicateInstancesCount} duplicate ${item}`;
|
|
122
123
|
insightType = InsightType.WARNING;
|
|
123
124
|
} else {
|
|
124
|
-
// No change
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
// No change - noop
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (!text || !insightType) {
|
|
129
|
+
return null;
|
|
127
130
|
}
|
|
128
131
|
|
|
129
132
|
return {
|
|
@@ -186,11 +189,15 @@ export const extractModulesPackagesDuplicate = (
|
|
|
186
189
|
baselineJob?.insights?.webpack?.duplicatePackages?.data ||
|
|
187
190
|
{};
|
|
188
191
|
|
|
192
|
+
const noDuplicatesDuplicatePackagesV3 = getDuplicatePackagesInsight({}, baselineDuplicatePackages);
|
|
193
|
+
|
|
189
194
|
if (!count) {
|
|
190
195
|
return {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
196
|
+
...(noDuplicatesDuplicatePackagesV3 && {
|
|
197
|
+
insights: {
|
|
198
|
+
duplicatePackagesV3: noDuplicatesDuplicatePackagesV3,
|
|
199
|
+
},
|
|
200
|
+
}),
|
|
194
201
|
metrics: {
|
|
195
202
|
duplicatePackagesCount: {
|
|
196
203
|
value: count,
|
|
@@ -227,16 +234,18 @@ export const extractModulesPackagesDuplicate = (
|
|
|
227
234
|
duplicatePackagesData[packageName] = packageData.children.map(({ id }) => id);
|
|
228
235
|
});
|
|
229
236
|
|
|
237
|
+
const duplicatePackagesV3 = getDuplicatePackagesInsight(
|
|
238
|
+
duplicatePackagesData,
|
|
239
|
+
baselineDuplicatePackages,
|
|
240
|
+
);
|
|
241
|
+
|
|
230
242
|
return {
|
|
231
243
|
insights: {
|
|
232
244
|
duplicatePackages: {
|
|
233
245
|
type: InsightType.WARNING,
|
|
234
246
|
data: duplicatePackagesData,
|
|
235
247
|
},
|
|
236
|
-
duplicatePackagesV3
|
|
237
|
-
duplicatePackagesData,
|
|
238
|
-
baselineDuplicatePackages,
|
|
239
|
-
),
|
|
248
|
+
...(duplicatePackagesV3 && { duplicatePackagesV3 }),
|
|
240
249
|
},
|
|
241
250
|
metrics: {
|
|
242
251
|
duplicatePackagesCount: {
|
package/types/constants.d.ts
CHANGED
|
@@ -85,6 +85,10 @@ export interface JobInsights {
|
|
|
85
85
|
newPackages?: JobInsight<JobInsightNewPackagesData>;
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
|
+
export interface JobInsightsInfo {
|
|
89
|
+
duplicatePackages?: JobInsights['webpack']['duplicatePackagesV3'];
|
|
90
|
+
newPackages?: JobInsights['webpack']['newPackages'];
|
|
91
|
+
}
|
|
88
92
|
export type JobMetricsSource = Record<string, MetricRun | Record<string, MetricRun>>;
|
|
89
93
|
export type JobMetrics = JobSection<JobMetricsSource>;
|
|
90
94
|
export interface JobData {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { JobInsight,
|
|
2
|
-
interface
|
|
1
|
+
import { JobInsight, JobInsightsInfo } from '../constants';
|
|
2
|
+
interface InsightListItem {
|
|
3
3
|
name: string;
|
|
4
4
|
insight: JobInsight;
|
|
5
5
|
link: any;
|
|
6
6
|
}
|
|
7
|
-
export declare const getInsightList: (insights:
|
|
7
|
+
export declare const getInsightList: (insights: JobInsightsInfo) => Array<InsightListItem>;
|
|
8
|
+
export declare const getChangedInsights: (normalizedInsights: JobInsightsInfo) => JobInsightsInfo | null;
|
|
8
9
|
export {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Job, JobInsight, JobInsightDuplicatePackagesV3Data, JobInsights, MetricRun } from '../../constants';
|
|
2
2
|
interface ModulesPackagesDuplicateData {
|
|
3
|
-
insights
|
|
3
|
+
insights?: {
|
|
4
4
|
duplicatePackages?: JobInsights['webpack']['duplicatePackages'];
|
|
5
|
-
duplicatePackagesV3
|
|
5
|
+
duplicatePackagesV3?: JobInsights['webpack']['duplicatePackagesV3'];
|
|
6
6
|
};
|
|
7
7
|
metrics: {
|
|
8
8
|
duplicatePackagesCount: MetricRun;
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
|
-
export declare const getDuplicatePackagesInsight: (duplicatePackagesMap: Record<string, Array<string>>, baselineDuplicatePackagesMap?: Record<string, Array<string>>) => JobInsight<JobInsightDuplicatePackagesV3Data
|
|
11
|
+
export declare const getDuplicatePackagesInsight: (duplicatePackagesMap: Record<string, Array<string>>, baselineDuplicatePackagesMap?: Record<string, Array<string>>) => JobInsight<JobInsightDuplicatePackagesV3Data> | null;
|
|
12
12
|
export declare const extractModulesPackagesDuplicate: (_: any, currentExtractedData: any, baselineJob?: Job) => ModulesPackagesDuplicateData;
|
|
13
13
|
export {};
|