@bundle-stats/utils 3.3.0-alpha.0 → 3.3.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/CHANGELOG.md +40 -6
- package/lib/browsertime/index.js +5 -1
- package/lib/browsertime/index.js.map +1 -1
- package/lib/config/component-links.js +1 -0
- package/lib/config/component-links.js.map +1 -1
- package/lib/config/file-types.js +3 -3
- package/lib/config/file-types.js.map +1 -1
- package/lib/config/index.js +5 -1
- package/lib/config/index.js.map +1 -1
- package/lib/i18n.js +2 -1
- package/lib/i18n.js.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/jobs/create-job.js +7 -3
- package/lib/jobs/create-job.js.map +1 -1
- package/lib/jobs/create-jobs.js +2 -2
- package/lib/jobs/create-jobs.js.map +1 -1
- package/lib/jobs/index.js +5 -1
- package/lib/jobs/index.js.map +1 -1
- package/lib/lighthouse/index.js +5 -1
- package/lib/lighthouse/index.js.map +1 -1
- package/lib/report/create.js +5 -1
- package/lib/report/create.js.map +1 -1
- package/lib/report/index.js +5 -1
- package/lib/report/index.js.map +1 -1
- package/lib/utils/component-links.js +15 -1
- package/lib/utils/component-links.js.map +1 -1
- package/lib/utils/format.js +5 -1
- package/lib/utils/format.js.map +1 -1
- package/lib/utils/index.js +5 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/webpack/constants.js +14 -26
- package/lib/webpack/constants.js.map +1 -1
- package/lib/webpack/extract/assets-size-total-insight.js +4 -4
- package/lib/webpack/extract/assets-size-total-insight.js.map +1 -1
- package/lib/webpack/extract/assets-size.js +4 -3
- package/lib/webpack/extract/assets-size.js.map +1 -1
- package/lib/webpack/extract/index.js +1 -3
- package/lib/webpack/extract/index.js.map +1 -1
- package/lib/webpack/extract/modules.js +29 -2
- package/lib/webpack/extract/modules.js.map +1 -1
- package/lib/webpack/index.js +5 -1
- package/lib/webpack/index.js.map +1 -1
- package/lib/webpack/metrics.js +30 -27
- package/lib/webpack/metrics.js.map +1 -1
- package/lib-esm/config/component-links.js +1 -0
- package/lib-esm/config/component-links.js.map +1 -1
- package/lib-esm/config/file-types.js +3 -3
- package/lib-esm/config/file-types.js.map +1 -1
- package/lib-esm/i18n.js +2 -1
- package/lib-esm/i18n.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/jobs/create-jobs.js +2 -2
- package/lib-esm/jobs/create-jobs.js.map +1 -1
- package/lib-esm/utils/component-links.js +14 -0
- package/lib-esm/utils/component-links.js.map +1 -1
- package/lib-esm/webpack/constants.js +13 -25
- package/lib-esm/webpack/constants.js.map +1 -1
- package/lib-esm/webpack/extract/assets-size-total-insight.js +4 -4
- package/lib-esm/webpack/extract/assets-size-total-insight.js.map +1 -1
- package/lib-esm/webpack/extract/assets-size.js +4 -3
- package/lib-esm/webpack/extract/assets-size.js.map +1 -1
- package/lib-esm/webpack/extract/index.js +1 -3
- package/lib-esm/webpack/extract/index.js.map +1 -1
- package/lib-esm/webpack/extract/modules.js +29 -2
- package/lib-esm/webpack/extract/modules.js.map +1 -1
- package/lib-esm/webpack/metrics.js +30 -27
- package/lib-esm/webpack/metrics.js.map +1 -1
- package/package.json +16 -16
- package/src/config/component-links.js +1 -0
- package/src/config/file-types.js +3 -3
- package/src/constants.ts +3 -0
- package/src/i18n.js +2 -1
- package/src/jobs/create-job.js +2 -2
- package/src/jobs/create-jobs.js +2 -2
- package/src/utils/component-links.js +23 -7
- package/src/webpack/constants.js +91 -0
- package/src/webpack/extract/assets-size-total-insight.js +4 -4
- package/src/webpack/extract/assets-size.js +5 -3
- package/src/webpack/extract/index.js +5 -10
- package/src/webpack/extract/modules.ts +35 -4
- package/src/webpack/{metrics.ts → metrics.js} +30 -27
- package/types/config/component-links.d.ts +1 -0
- package/types/constants.d.ts +3 -0
- package/types/i18n.d.ts +1 -0
- package/types/jobs/create-job.d.ts +1 -1
- package/types/jobs/create-jobs.d.ts +1 -1
- package/types/utils/component-links.d.ts +26 -12
- package/types/webpack/constants.d.ts +9 -31
- package/types/webpack/extract/index.d.ts +1 -1
- package/types/webpack/metrics.d.ts +153 -102
- package/lib/webpack/extract/budgets-insights.js +0 -39
- package/lib/webpack/extract/budgets-insights.js.map +0 -1
- package/lib-esm/webpack/extract/budgets-insights.js +0 -33
- package/lib-esm/webpack/extract/budgets-insights.js.map +0 -1
- package/src/webpack/constants.ts +0 -96
- package/src/webpack/extract/budgets-insights.ts +0 -73
- package/types/webpack/extract/budgets-insights.d.ts +0 -22
package/src/webpack/constants.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
export const SECTION_WEBPACK_STATS = 'stats';
|
|
2
|
-
export const SECTION_WEBPACK_SIZES = 'sizes';
|
|
3
|
-
export const SECTION_WEBPACK_ASSETS = 'assets';
|
|
4
|
-
export const SECTION_WEBPACK_MODULES = 'modules';
|
|
5
|
-
export const SECTION_WEBPACK_PACKAGES = 'packages';
|
|
6
|
-
|
|
7
|
-
export const SECTIONS = [
|
|
8
|
-
SECTION_WEBPACK_STATS,
|
|
9
|
-
SECTION_WEBPACK_SIZES,
|
|
10
|
-
SECTION_WEBPACK_ASSETS,
|
|
11
|
-
SECTION_WEBPACK_MODULES,
|
|
12
|
-
SECTION_WEBPACK_PACKAGES,
|
|
13
|
-
];
|
|
14
|
-
|
|
15
|
-
export enum MetricId {
|
|
16
|
-
BundleSize = 'totalSizeByTypeALL',
|
|
17
|
-
TotalInitialSizeJS = 'totalInitialSizeJS',
|
|
18
|
-
TotalInitialSizeCSS = 'totalInitialSizeCSS',
|
|
19
|
-
CacheInvalidation = 'cacheInvalidation',
|
|
20
|
-
ModuleName = 'moduleCount',
|
|
21
|
-
ChunkCount = 'chunkCount',
|
|
22
|
-
AssetCount = 'assetCount',
|
|
23
|
-
PackageCount = 'packageCount',
|
|
24
|
-
DuplicatePackagesCount = 'duplicatePackagesCount',
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export const SIZE_BY_TYPE_METRIC_ID_ALL = 'ALL';
|
|
28
|
-
export const SIZE_BY_TYPE_METRIC_ID_PREFIX = 'totalSizeByType';
|
|
29
|
-
|
|
30
|
-
export enum SizeByTypeMetricId {
|
|
31
|
-
JS = 'totalSizeByTypeJS',
|
|
32
|
-
CSS = 'totalSizeByTypeCSS',
|
|
33
|
-
IMG = 'totalSizeByTypeIMG',
|
|
34
|
-
Media = 'totalSizeByTypeMEDIA',
|
|
35
|
-
Font = 'totalSizeByTypeFONT',
|
|
36
|
-
HTML = 'totalSizeByTypeHTML',
|
|
37
|
-
Other = 'totalSizeByTypeOTHER',
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export const SUMMARY_METRIC_PATHS = Object.values(MetricId);
|
|
41
|
-
|
|
42
|
-
const PACKAGE_PREFIX = /(?:node_modules|~)(?:\/\.pnpm)?/;
|
|
43
|
-
const PACKAGE_SLUG = /[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*/;
|
|
44
|
-
const VERSION = /@[\w|\-|_|.]+/;
|
|
45
|
-
|
|
46
|
-
// Extract package paths from module path
|
|
47
|
-
// https://regex101.com/r/22Leep/6
|
|
48
|
-
/* eslint-disable prettier/prettier, @typescript-eslint/indent */
|
|
49
|
-
export const MODULE_PATH_PACKAGES = new RegExp([
|
|
50
|
-
// match dependency directory (eg: `node_modules/`, `node_modules/.pnpm/`)
|
|
51
|
-
`(?:${PACKAGE_PREFIX.source}/)`,
|
|
52
|
-
// match package name
|
|
53
|
-
'(?:',
|
|
54
|
-
// match `@organization/` or `@organization+`(pnpm)
|
|
55
|
-
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
56
|
-
// match github.com+organization+
|
|
57
|
-
`(?:${PACKAGE_SLUG.source}\\+)*`,
|
|
58
|
-
// match package name
|
|
59
|
-
`(?:${PACKAGE_SLUG.source})`,
|
|
60
|
-
// match version
|
|
61
|
-
`(?:${VERSION.source})?`,
|
|
62
|
-
')',
|
|
63
|
-
|
|
64
|
-
// Match pnpm peer dependencies (eg: package-a@version_package-b@version)
|
|
65
|
-
'(?:_',
|
|
66
|
-
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
67
|
-
`(?:${PACKAGE_SLUG.source})`,
|
|
68
|
-
`(?:@${PACKAGE_SLUG.source})?`,
|
|
69
|
-
')*',
|
|
70
|
-
'/',
|
|
71
|
-
].join(''), 'g');
|
|
72
|
-
|
|
73
|
-
// Extract package name from package path
|
|
74
|
-
// https://regex101.com/r/tTlU0W/6
|
|
75
|
-
export const PACKAGE_PATH_NAME = new RegExp([
|
|
76
|
-
`(?:${PACKAGE_PREFIX.source}/)`,
|
|
77
|
-
// match dependency
|
|
78
|
-
'(?:',
|
|
79
|
-
'(',
|
|
80
|
-
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
81
|
-
`(?:(?:${PACKAGE_SLUG.source}\\+)*)`,
|
|
82
|
-
`(?:${PACKAGE_SLUG.source})`,
|
|
83
|
-
')',
|
|
84
|
-
`(?:${VERSION.source})?`,
|
|
85
|
-
')',
|
|
86
|
-
// match peer dependency
|
|
87
|
-
'(?:_',
|
|
88
|
-
'(',
|
|
89
|
-
`(?:@${PACKAGE_SLUG.source}[/|+])?`,
|
|
90
|
-
`(?:${PACKAGE_SLUG.source})`,
|
|
91
|
-
')',
|
|
92
|
-
`(?:@${PACKAGE_SLUG.source})`,
|
|
93
|
-
')*',
|
|
94
|
-
'/',
|
|
95
|
-
].join(''), 'g');
|
|
96
|
-
/* eslint-enable prettier/prettier, @typescript-eslint/indent */
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import get from 'lodash/get';
|
|
2
|
-
|
|
3
|
-
import { getMetricType } from '../utils';
|
|
4
|
-
|
|
5
|
-
interface OptionBudgetMetric {
|
|
6
|
-
metric: string;
|
|
7
|
-
value: number;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
interface Options {
|
|
11
|
-
budgets?: Array<OptionBudgetMetric>;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
interface BudgetInsight {
|
|
15
|
-
currentValue: number;
|
|
16
|
-
budgetValue: number;
|
|
17
|
-
failed: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
interface BudgetsInsights {
|
|
21
|
-
[metricId: string]: BudgetInsight;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
interface ExtractBudgetsInsights {
|
|
25
|
-
insights: {
|
|
26
|
-
budgets: BudgetsInsights;
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export default function extractBudgetsInsights(
|
|
31
|
-
_: unknown,
|
|
32
|
-
currentExtractedData: any,
|
|
33
|
-
__: unknown,
|
|
34
|
-
options: Options = {}
|
|
35
|
-
): ExtractBudgetsInsights | null {
|
|
36
|
-
const { budgets: budgetsOptions } = options;
|
|
37
|
-
|
|
38
|
-
if (!budgetsOptions) {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const insights: Array<[string, BudgetInsight]> = [];
|
|
43
|
-
|
|
44
|
-
budgetsOptions.forEach((budgetOption) => {
|
|
45
|
-
const { metric: budgetMetricId, value: budgetValue } = budgetOption;
|
|
46
|
-
const currentValue = get(currentExtractedData, `metrics.${budgetMetricId}.value`);
|
|
47
|
-
const metric = getMetricType(budgetMetricId);
|
|
48
|
-
|
|
49
|
-
if (!currentValue) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const isValueOverBudget = currentValue > budgetValue;
|
|
54
|
-
|
|
55
|
-
const budgetInsight = {
|
|
56
|
-
currentValue,
|
|
57
|
-
budgetValue,
|
|
58
|
-
failed: metric.biggerIsBetter ? !isValueOverBudget : isValueOverBudget,
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
insights.push([budgetMetricId, budgetInsight]);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
if (insights.length === 0) {
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return {
|
|
69
|
-
insights: {
|
|
70
|
-
budgets: Object.fromEntries(insights),
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
interface OptionBudgetMetric {
|
|
2
|
-
metric: string;
|
|
3
|
-
value: number;
|
|
4
|
-
}
|
|
5
|
-
interface Options {
|
|
6
|
-
budgets?: Array<OptionBudgetMetric>;
|
|
7
|
-
}
|
|
8
|
-
interface BudgetInsight {
|
|
9
|
-
currentValue: number;
|
|
10
|
-
budgetValue: number;
|
|
11
|
-
failed: boolean;
|
|
12
|
-
}
|
|
13
|
-
interface BudgetsInsights {
|
|
14
|
-
[metricId: string]: BudgetInsight;
|
|
15
|
-
}
|
|
16
|
-
interface ExtractBudgetsInsights {
|
|
17
|
-
insights: {
|
|
18
|
-
budgets: BudgetsInsights;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export default function extractBudgetsInsights(_: unknown, currentExtractedData: any, __: unknown, options?: Options): ExtractBudgetsInsights | null;
|
|
22
|
-
export {};
|