@bundle-stats/utils 4.3.0-beta.2 → 4.3.0-rc.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/config/index.js +0 -1
- package/lib/config/index.js.map +1 -1
- package/lib/config/metrics.js.map +1 -1
- package/lib/constants.js +7 -1
- package/lib/constants.js.map +1 -1
- package/lib/i18n.js +3 -0
- package/lib/i18n.js.map +1 -1
- package/lib/utils/component-links.js +40 -1
- package/lib/utils/component-links.js.map +1 -1
- package/lib/utils/index.js +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/insights.js +54 -0
- package/lib/utils/insights.js.map +1 -0
- 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 +28 -16
- 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/webpack/extract/modules.js +45 -20
- package/lib/webpack/extract/modules.js.map +1 -1
- package/lib/webpack/metrics.js +5 -5
- package/lib/webpack/metrics.js.map +1 -1
- package/lib-esm/config/index.js +0 -1
- package/lib-esm/config/index.js.map +1 -1
- package/lib-esm/config/metrics.js +1 -1
- package/lib-esm/config/metrics.js.map +1 -1
- package/lib-esm/constants.js +6 -0
- package/lib-esm/constants.js.map +1 -1
- package/lib-esm/i18n.js +3 -0
- package/lib-esm/i18n.js.map +1 -1
- package/lib-esm/utils/component-links.js +38 -0
- package/lib-esm/utils/component-links.js.map +1 -1
- package/lib-esm/utils/index.js +1 -0
- package/lib-esm/utils/index.js.map +1 -1
- package/lib-esm/utils/insights.js +47 -0
- package/lib-esm/utils/insights.js.map +1 -0
- 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 +22 -10
- 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/lib-esm/webpack/extract/modules.js +45 -20
- package/lib-esm/webpack/extract/modules.js.map +1 -1
- package/lib-esm/webpack/metrics.js +5 -5
- package/lib-esm/webpack/metrics.js.map +1 -1
- package/package.json +13 -13
- package/src/config/index.js +0 -1
- package/src/config/metrics.js +2 -6
- package/src/constants.ts +22 -10
- package/src/i18n.js +3 -0
- package/src/utils/component-links.ts +44 -0
- package/src/utils/index.js +1 -0
- package/src/utils/insights.ts +82 -0
- 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 +32 -17
- package/src/webpack/extract/modules-packages-new-insight.ts +80 -0
- package/src/webpack/extract/modules.ts +61 -31
- package/src/webpack/metrics.js +5 -5
- package/src/webpack/types.ts +2 -2
- package/types/browsertime/metrics.d.ts +1 -1
- package/types/config/index.d.ts +0 -1
- package/types/config/metrics.d.ts +1 -30
- package/types/constants.d.ts +21 -9
- package/types/i18n.d.ts +3 -0
- package/types/lighthouse/metrics.d.ts +4 -4
- package/types/utils/component-links.d.ts +3 -0
- package/types/utils/index.d.ts +1 -0
- package/types/utils/insights.d.ts +9 -0
- package/types/webpack/constants.d.ts +1 -1
- package/types/webpack/extract/assets-size-total-insight.d.ts +2 -2
- package/types/webpack/extract/modules-packages-duplicate.d.ts +3 -3
- package/types/webpack/extract/modules-packages-new-insight.d.ts +8 -0
- package/types/webpack/metrics.d.ts +3 -3
- package/types/webpack/types.d.ts +2 -2
- 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/tsconfig.lib.json +0 -7
- package/types/config/insights.d.ts +0 -5
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import round from 'lodash/round';
|
|
2
|
-
import
|
|
2
|
+
import union from 'lodash/union';
|
|
3
|
+
import { WebpackStatsFiltered, WebpackStatsFilteredModule } from '@bundle-stats/plugin-webpack-filter';
|
|
3
4
|
|
|
4
5
|
import { Module, MetricsModules } from '../types';
|
|
5
6
|
import { getModuleName, normalizeChunkId } from '../utils';
|
|
6
7
|
|
|
7
8
|
/*
|
|
8
|
-
* Extract webpack modules
|
|
9
|
+
* Extract webpack modules metrics and stats
|
|
9
10
|
*/
|
|
10
11
|
export const extractModules = (webpackStats?: WebpackStatsFiltered): MetricsModules => {
|
|
11
12
|
const modulesSource = webpackStats?.modules;
|
|
@@ -22,57 +23,86 @@ export const extractModules = (webpackStats?: WebpackStatsFiltered): MetricsModu
|
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
// Flatten concatenated modules
|
|
25
|
-
const
|
|
26
|
-
if (!moduleEntry.modules) {
|
|
27
|
-
agg.push(moduleEntry);
|
|
26
|
+
const modulesByName: Map<string, WebpackStatsFilteredModule> = new Map();
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
modulesSource.forEach((rootModule) => {
|
|
29
|
+
// skip modules that do not belong to any chunk
|
|
30
|
+
if (!rootModule.chunks || rootModule.chunks.length === 0) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// flatten concatenated modules
|
|
35
|
+
if (rootModule.modules) {
|
|
36
|
+
rootModule.modules.forEach((concatenatedModule) => {
|
|
37
|
+
const concatenatedModuleName = getModuleName(concatenatedModule.name);
|
|
38
|
+
const existingModule = modulesByName.get(concatenatedModuleName);
|
|
39
|
+
|
|
40
|
+
// Merge if the module is already available
|
|
41
|
+
// webpack adds a module entry for every concatenated module
|
|
42
|
+
if (existingModule) {
|
|
43
|
+
modulesByName.set(concatenatedModuleName, {
|
|
44
|
+
...existingModule,
|
|
45
|
+
chunks: union(existingModule.chunks, rootModule.chunks),
|
|
46
|
+
});
|
|
47
|
+
} else {
|
|
48
|
+
modulesByName.set(concatenatedModuleName, {
|
|
49
|
+
...concatenatedModule,
|
|
50
|
+
chunks: rootModule.chunks,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const normalizedName = getModuleName(rootModule.name);
|
|
59
|
+
const savedRootModule = modulesByName.get(normalizedName);
|
|
60
|
+
|
|
61
|
+
// Merge module data
|
|
62
|
+
// @NOTE some webpack plugins (mini-css-extract-plugin) might add a root module entry
|
|
63
|
+
// even if thee module was already concantenated in another module
|
|
64
|
+
if (savedRootModule) {
|
|
65
|
+
modulesByName.set(normalizedName, {
|
|
66
|
+
...savedRootModule,
|
|
67
|
+
chunks: union(savedRootModule.chunks, rootModule.chunks),
|
|
68
|
+
size: rootModule.size,
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
return;
|
|
30
72
|
}
|
|
31
73
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
moduleEntry.modules.map((concatenatedModule) => ({
|
|
35
|
-
...concatenatedModule,
|
|
36
|
-
// Add parent chunks
|
|
37
|
-
chunks: moduleEntry.chunks,
|
|
38
|
-
})),
|
|
39
|
-
);
|
|
74
|
+
modulesByName.set(normalizedName, rootModule);
|
|
75
|
+
});
|
|
40
76
|
|
|
41
|
-
|
|
42
|
-
|
|
77
|
+
// Normalize module entries and extract metrics
|
|
78
|
+
const modules: Record<string, Module> = {};
|
|
43
79
|
|
|
44
80
|
let moduleCount = 0;
|
|
45
81
|
let totalCodeSize = 0;
|
|
46
82
|
let duplicateCodeSize = 0;
|
|
47
83
|
let duplicateModulesCount = 0;
|
|
48
84
|
|
|
49
|
-
|
|
50
|
-
const modules = allModules.reduce((agg, moduleEntry) => {
|
|
85
|
+
modulesByName.forEach((moduleEntry, normalizedName) => {
|
|
51
86
|
const { name, size = 0, chunks } = moduleEntry;
|
|
52
|
-
const normalizedName = getModuleName(name);
|
|
53
|
-
|
|
54
|
-
// skip modules that do not belong to any chunk
|
|
55
|
-
if (!chunks || chunks?.length === 0) {
|
|
56
|
-
return agg;
|
|
57
|
-
}
|
|
58
87
|
|
|
59
88
|
const instances = chunks.length;
|
|
60
89
|
const duplicateInstances = instances - 1;
|
|
90
|
+
const duplicated = duplicateInstances > 0;
|
|
61
91
|
|
|
62
92
|
moduleCount += instances;
|
|
63
|
-
duplicateModulesCount += duplicateInstances;
|
|
64
|
-
duplicateCodeSize += duplicateInstances * size;
|
|
65
93
|
totalCodeSize += instances * size;
|
|
66
94
|
|
|
67
|
-
|
|
68
|
-
|
|
95
|
+
if (duplicated) {
|
|
96
|
+
duplicateModulesCount += duplicateInstances;
|
|
97
|
+
duplicateCodeSize += duplicateInstances * size;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
modules[normalizedName] = {
|
|
69
101
|
name,
|
|
70
102
|
value: size,
|
|
71
103
|
chunkIds: chunks.map(normalizeChunkId),
|
|
72
|
-
duplicated
|
|
104
|
+
...(duplicated && { duplicated }),
|
|
73
105
|
};
|
|
74
|
-
|
|
75
|
-
return agg;
|
|
76
106
|
}, {} as Record<string, Module>);
|
|
77
107
|
|
|
78
108
|
const duplicateCode = totalCodeSize ? round((duplicateCodeSize / totalCodeSize) * 100, 2) : 0;
|
package/src/webpack/metrics.js
CHANGED
|
@@ -9,7 +9,7 @@ import { Metric } from './types';
|
|
|
9
9
|
export const metrics = {
|
|
10
10
|
[Metric.BUNDLE_SIZE]: {
|
|
11
11
|
label: 'Bundle Size',
|
|
12
|
-
description: 'The total size of the assets
|
|
12
|
+
description: 'The total size of the assets processed by the bundler',
|
|
13
13
|
url: 'https://relative-ci.com/documentation/metrics-and-data#assets',
|
|
14
14
|
type: METRIC_TYPE_FILE_SIZE,
|
|
15
15
|
},
|
|
@@ -48,14 +48,14 @@ export const metrics = {
|
|
|
48
48
|
},
|
|
49
49
|
[Metric.MODULE_COUNT]: {
|
|
50
50
|
label: 'Modules',
|
|
51
|
-
description: 'The total number of
|
|
51
|
+
description: 'The total number of bundled modules',
|
|
52
52
|
url: 'https://relative-ci.com/documentation/metrics-and-data#modules-1',
|
|
53
53
|
type: METRIC_TYPE_NUMERIC,
|
|
54
54
|
biggerIsBetter: false,
|
|
55
55
|
},
|
|
56
56
|
[Metric.DUPLICATE_MODULES_COUNT]: {
|
|
57
57
|
label: 'Duplicate Modules',
|
|
58
|
-
description: 'The total number of
|
|
58
|
+
description: 'The total number of module instances bundled into multiple chunks',
|
|
59
59
|
url: 'https://relative-ci.com/documentation/metrics-and-data#modules-1',
|
|
60
60
|
type: METRIC_TYPE_NUMERIC,
|
|
61
61
|
biggerIsBetter: false,
|
|
@@ -69,14 +69,14 @@ export const metrics = {
|
|
|
69
69
|
},
|
|
70
70
|
[Metric.PACKAGE_COUNT]: {
|
|
71
71
|
label: 'Packages',
|
|
72
|
-
description: 'The total number of
|
|
72
|
+
description: 'The total number of bundled packages',
|
|
73
73
|
url: 'https://relative-ci.com/documentation/metrics-and-data#packages',
|
|
74
74
|
type: METRIC_TYPE_NUMERIC,
|
|
75
75
|
biggerIsBetter: false,
|
|
76
76
|
},
|
|
77
77
|
[Metric.DUPLICATE_PACKAGES_COUNT]: {
|
|
78
78
|
label: 'Duplicate Packages',
|
|
79
|
-
description: 'The total number of duplicate
|
|
79
|
+
description: 'The total number of bundled duplicate package instances',
|
|
80
80
|
url: 'https://relative-ci.com/documentation/metrics-and-data#packages',
|
|
81
81
|
type: METRIC_TYPE_NUMERIC,
|
|
82
82
|
biggerIsBetter: false,
|
package/src/webpack/types.ts
CHANGED
|
@@ -50,8 +50,8 @@ export interface MetricsAssets {
|
|
|
50
50
|
|
|
51
51
|
export interface Module extends MetricRun {
|
|
52
52
|
name: string;
|
|
53
|
-
chunkIds: Array<
|
|
54
|
-
duplicated
|
|
53
|
+
chunkIds: Array<string>;
|
|
54
|
+
duplicated?: boolean;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
export type Modules = Record<string, Module>;
|
package/types/config/index.d.ts
CHANGED
|
@@ -3,33 +3,4 @@ export const METRIC_TYPE_DURATION: "METRIC_TYPE_DURATION";
|
|
|
3
3
|
export const METRIC_TYPE_NUMERIC: "METRIC_TYPE_NUMERIC";
|
|
4
4
|
export const METRIC_TYPE_SCORE: "METRIC_TYPE_SCORE";
|
|
5
5
|
export const METRIC_TYPE_PERCENTAGE: "METRIC_TYPE_PERCENTAGE";
|
|
6
|
-
export
|
|
7
|
-
namespace METRIC_TYPE_NUMERIC {
|
|
8
|
-
export const biggerIsBetter: boolean;
|
|
9
|
-
export { formatNumber as formatter };
|
|
10
|
-
}
|
|
11
|
-
namespace METRIC_TYPE_SCORE {
|
|
12
|
-
const biggerIsBetter_1: boolean;
|
|
13
|
-
export { biggerIsBetter_1 as biggerIsBetter };
|
|
14
|
-
export { formatNumber as formatter };
|
|
15
|
-
}
|
|
16
|
-
namespace METRIC_TYPE_DURATION {
|
|
17
|
-
const biggerIsBetter_2: boolean;
|
|
18
|
-
export { biggerIsBetter_2 as biggerIsBetter };
|
|
19
|
-
export { formatDuration as formatter };
|
|
20
|
-
}
|
|
21
|
-
namespace METRIC_TYPE_FILE_SIZE {
|
|
22
|
-
const biggerIsBetter_3: boolean;
|
|
23
|
-
export { biggerIsBetter_3 as biggerIsBetter };
|
|
24
|
-
export { formatFileSize as formatter };
|
|
25
|
-
}
|
|
26
|
-
namespace METRIC_TYPE_PERCENTAGE {
|
|
27
|
-
const biggerIsBetter_4: boolean;
|
|
28
|
-
export { biggerIsBetter_4 as biggerIsBetter };
|
|
29
|
-
export { formatPercentage as formatter };
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
import { formatNumber } from "../utils/format";
|
|
33
|
-
import { formatDuration } from "../utils/format";
|
|
34
|
-
import { formatFileSize } from "../utils/format";
|
|
35
|
-
import { formatPercentage } from "../utils/format";
|
|
6
|
+
export const METRIC_TYPES: Record<string, import('../constants').MetricType>;
|
package/types/constants.d.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import { InsightType } from './config/insights';
|
|
2
1
|
export declare enum Source {
|
|
3
2
|
webpack = "webpack",
|
|
4
3
|
lighthouse = "lighthouse",
|
|
5
4
|
browsertime = "browsertime"
|
|
6
5
|
}
|
|
7
6
|
export type SourceData = Record<string, unknown>;
|
|
7
|
+
export declare enum InsightType {
|
|
8
|
+
ERROR = "error",
|
|
9
|
+
INFO = "info",
|
|
10
|
+
WARNING = "warning"
|
|
11
|
+
}
|
|
8
12
|
export declare enum MetricTypeType {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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"
|
|
14
18
|
}
|
|
15
19
|
export interface MetricTypeConfig {
|
|
16
20
|
label: string;
|
|
@@ -56,18 +60,21 @@ export interface JobSummaryItem {
|
|
|
56
60
|
}
|
|
57
61
|
export interface JobInsight<T = object> {
|
|
58
62
|
type: InsightType;
|
|
59
|
-
data: T
|
|
63
|
+
data: T & {
|
|
64
|
+
text?: string;
|
|
65
|
+
};
|
|
60
66
|
}
|
|
61
67
|
export interface JobInsightAssetsSizeTotalData {
|
|
62
|
-
text: string;
|
|
63
68
|
md: string;
|
|
64
69
|
info: MetricRunInfo;
|
|
65
70
|
}
|
|
66
71
|
export type JobInsightDuplicatePackagesData = Record<string, Array<string>>;
|
|
67
72
|
export interface JobInsightDuplicatePackagesV3Data {
|
|
68
|
-
text: string;
|
|
69
73
|
packages: Record<string, Array<string>>;
|
|
70
74
|
}
|
|
75
|
+
export interface JobInsightNewPackagesData {
|
|
76
|
+
packages: Array<string>;
|
|
77
|
+
}
|
|
71
78
|
export type JobSummarySource = Record<string, JobSummaryItem>;
|
|
72
79
|
export type JobSummary = JobSection<JobSummarySource>;
|
|
73
80
|
export interface JobInsights {
|
|
@@ -75,8 +82,13 @@ export interface JobInsights {
|
|
|
75
82
|
assetsSizeTotal: JobInsight<JobInsightAssetsSizeTotalData>;
|
|
76
83
|
duplicatePackages?: JobInsight<JobInsightDuplicatePackagesData>;
|
|
77
84
|
duplicatePackagesV3?: JobInsight<JobInsightDuplicatePackagesV3Data>;
|
|
85
|
+
newPackages?: JobInsight<JobInsightNewPackagesData>;
|
|
78
86
|
};
|
|
79
87
|
}
|
|
88
|
+
export interface JobInsightsInfo {
|
|
89
|
+
duplicatePackages?: JobInsights['webpack']['duplicatePackagesV3'];
|
|
90
|
+
newPackages?: JobInsights['webpack']['newPackages'];
|
|
91
|
+
}
|
|
80
92
|
export type JobMetricsSource = Record<string, MetricRun | Record<string, MetricRun>>;
|
|
81
93
|
export type JobMetrics = JobSection<JobMetricsSource>;
|
|
82
94
|
export interface JobData {
|
package/types/i18n.d.ts
CHANGED
|
@@ -9,10 +9,13 @@ declare namespace _default {
|
|
|
9
9
|
const COMPONENT_LINK_MODULES_DUPLICATE: string;
|
|
10
10
|
const COMPONENT_LINK_CHUNK_MODULES: string;
|
|
11
11
|
const COMPONENT_LINK_PACKAGES_COUNT: string;
|
|
12
|
+
const COMPONENT_LINK_PACKAGES_CHANGED: string;
|
|
12
13
|
const COMPONENT_LINK_PACKAGES_DUPLICATE: string;
|
|
14
|
+
const COMPONENT_LINK_PACKAGES_DUPLICATE_CHANGED: string;
|
|
13
15
|
const COMPONENT_LINK_VIEW_PACKAGE: string;
|
|
14
16
|
function COMPONENT_LINK_BUNDLE_ASSETS_BY_FILE_TYPE({ label }: {
|
|
15
17
|
label: any;
|
|
16
18
|
}): string;
|
|
19
|
+
function COMPONENT_LINK_BUNDLE_ASSETS_BY_ENTRY_TYPE(assetType: any): string;
|
|
17
20
|
}
|
|
18
21
|
export default _default;
|
|
@@ -59,7 +59,7 @@ export namespace metrics {
|
|
|
59
59
|
export { METRIC_TYPE_NUMERIC as type };
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
import { METRIC_TYPE_SCORE } from
|
|
63
|
-
import { METRIC_TYPE_DURATION } from
|
|
64
|
-
import { METRIC_TYPE_FILE_SIZE } from
|
|
65
|
-
import { METRIC_TYPE_NUMERIC } from
|
|
62
|
+
import { METRIC_TYPE_SCORE } from '../config/metrics';
|
|
63
|
+
import { METRIC_TYPE_DURATION } from '../config/metrics';
|
|
64
|
+
import { METRIC_TYPE_FILE_SIZE } from '../config/metrics';
|
|
65
|
+
import { METRIC_TYPE_NUMERIC } from '../config/metrics';
|
|
@@ -23,10 +23,13 @@ export declare const BUNDLE_ASSETS_COUNT: ComponentLink;
|
|
|
23
23
|
export declare const BUNDLE_ASSETS_CHUNK_COUNT: ComponentLink;
|
|
24
24
|
export declare const BUNDLE_MODULES: ComponentLink;
|
|
25
25
|
export declare const BUNDLE_MODULES_DUPLICATE: ComponentLink;
|
|
26
|
+
export declare const getBundleAssetsByEntryType: (assetType: 'entry' | 'initial' | 'chunk') => ComponentLink;
|
|
26
27
|
export declare const getBundleModulesBySearch: (search: string) => ComponentLink;
|
|
27
28
|
export declare const getBundleModulesByChunk: (chunkIds: Array<string>, chunkId: string, fileType?: string) => ComponentLink;
|
|
28
29
|
export declare const BUNDLE_PACKAGES_COUNT: ComponentLink;
|
|
30
|
+
export declare const BUNDLE_PACKAGES_CHANGED: ComponentLink;
|
|
29
31
|
export declare const BUNDLE_PACKAGES_DUPLICATE: ComponentLink;
|
|
32
|
+
export declare const BUNDLE_PACKAGES_DUPLICATE_CHANGED: ComponentLink;
|
|
30
33
|
export declare const getBundleAssetsFileTypeComponentLink: (fileType: string, label: string) => ComponentLink;
|
|
31
34
|
export declare const getBundlePackagesByNameComponentLink: (search: string) => ComponentLink;
|
|
32
35
|
export declare const getComponentStateQueryString: (params?: {}) => string;
|
package/types/utils/index.d.ts
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { JobInsight, JobInsightsInfo } from '../constants';
|
|
2
|
+
interface InsightListItem {
|
|
3
|
+
name: string;
|
|
4
|
+
insight: JobInsight;
|
|
5
|
+
link: any;
|
|
6
|
+
}
|
|
7
|
+
export declare const getInsightList: (insights: JobInsightsInfo) => Array<InsightListItem>;
|
|
8
|
+
export declare const getChangedInsights: (normalizedInsights: JobInsightsInfo) => JobInsightsInfo | null;
|
|
9
|
+
export {};
|
|
@@ -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,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 {};
|
|
@@ -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 {};
|
|
@@ -148,6 +148,6 @@ export namespace metrics {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
import { METRIC_TYPE_FILE_SIZE } from
|
|
152
|
-
import { METRIC_TYPE_PERCENTAGE } from
|
|
153
|
-
import { METRIC_TYPE_NUMERIC } from
|
|
151
|
+
import { METRIC_TYPE_FILE_SIZE } from '../config/metrics';
|
|
152
|
+
import { METRIC_TYPE_PERCENTAGE } from '../config/metrics';
|
|
153
|
+
import { METRIC_TYPE_NUMERIC } from '../config/metrics';
|
package/types/webpack/types.d.ts
CHANGED
|
@@ -43,8 +43,8 @@ export interface MetricsAssets {
|
|
|
43
43
|
}
|
|
44
44
|
export interface Module extends MetricRun {
|
|
45
45
|
name: string;
|
|
46
|
-
chunkIds: Array<
|
|
47
|
-
duplicated
|
|
46
|
+
chunkIds: Array<string>;
|
|
47
|
+
duplicated?: boolean;
|
|
48
48
|
}
|
|
49
49
|
export type Modules = Record<string, Module>;
|
|
50
50
|
export interface MetricsModules {
|
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
package/tsconfig.lib.json
DELETED