@bundle-stats/utils 3.4.0-beta.0 → 4.0.0-alpha.14

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.
Files changed (94) hide show
  1. package/lib/constants.js +1 -8
  2. package/lib/constants.js.map +1 -1
  3. package/lib/index.js +0 -15
  4. package/lib/index.js.map +1 -1
  5. package/lib/jobs/create-job.js +2 -2
  6. package/lib/jobs/create-job.js.map +1 -1
  7. package/lib/jobs/create-jobs.js +2 -2
  8. package/lib/jobs/create-jobs.js.map +1 -1
  9. package/lib/report/create.js +2 -4
  10. package/lib/report/create.js.map +1 -1
  11. package/lib/utils/format.js +12 -4
  12. package/lib/utils/format.js.map +1 -1
  13. package/lib/webpack/constants.js +14 -28
  14. package/lib/webpack/constants.js.map +1 -1
  15. package/lib/webpack/extract/assets-size-total-insight.js +4 -4
  16. package/lib/webpack/extract/assets-size-total-insight.js.map +1 -1
  17. package/lib/webpack/extract/assets-size.js +4 -3
  18. package/lib/webpack/extract/assets-size.js.map +1 -1
  19. package/lib/webpack/extract/assets.js +4 -4
  20. package/lib/webpack/extract/assets.js.map +1 -1
  21. package/lib/webpack/extract/index.js +1 -26
  22. package/lib/webpack/extract/index.js.map +1 -1
  23. package/lib/webpack/extract/modules-packages-duplicate.js +3 -3
  24. package/lib/webpack/extract/modules-packages-duplicate.js.map +1 -1
  25. package/lib/webpack/extract/modules-packages.js +1 -2
  26. package/lib/webpack/extract/modules-packages.js.map +1 -1
  27. package/lib/webpack/extract/modules.js +1 -1
  28. package/lib/webpack/extract/modules.js.map +1 -1
  29. package/lib/webpack/metrics.js +18 -29
  30. package/lib/webpack/metrics.js.map +1 -1
  31. package/lib/webpack/utils.js +1 -1
  32. package/lib/webpack/utils.js.map +1 -1
  33. package/lib-esm/constants.js +0 -7
  34. package/lib-esm/constants.js.map +1 -1
  35. package/lib-esm/index.js +0 -3
  36. package/lib-esm/index.js.map +1 -1
  37. package/lib-esm/jobs/create-job.js +2 -2
  38. package/lib-esm/jobs/create-job.js.map +1 -1
  39. package/lib-esm/jobs/create-jobs.js +2 -2
  40. package/lib-esm/jobs/create-jobs.js.map +1 -1
  41. package/lib-esm/utils/format.js +12 -4
  42. package/lib-esm/utils/format.js.map +1 -1
  43. package/lib-esm/webpack/constants.js +13 -27
  44. package/lib-esm/webpack/constants.js.map +1 -1
  45. package/lib-esm/webpack/extract/assets-size-total-insight.js +4 -4
  46. package/lib-esm/webpack/extract/assets-size-total-insight.js.map +1 -1
  47. package/lib-esm/webpack/extract/assets-size.js +4 -3
  48. package/lib-esm/webpack/extract/assets-size.js.map +1 -1
  49. package/lib-esm/webpack/extract/index.js +1 -3
  50. package/lib-esm/webpack/extract/index.js.map +1 -1
  51. package/lib-esm/webpack/extract/modules-packages-duplicate.js +2 -2
  52. package/lib-esm/webpack/extract/modules-packages-duplicate.js.map +1 -1
  53. package/lib-esm/webpack/metrics.js +18 -29
  54. package/lib-esm/webpack/metrics.js.map +1 -1
  55. package/package.json +12 -12
  56. package/src/constants.ts +0 -7
  57. package/src/index.js +0 -2
  58. package/src/jobs/create-job.js +2 -2
  59. package/src/jobs/create-jobs.js +2 -2
  60. package/src/utils/format.js +17 -4
  61. package/src/webpack/{constants.ts → constants.js} +13 -28
  62. package/src/webpack/extract/assets-size-total-insight.js +4 -4
  63. package/src/webpack/extract/assets-size.js +5 -3
  64. package/src/webpack/extract/index.js +5 -7
  65. package/src/webpack/extract/modules-packages-duplicate.js +2 -2
  66. package/src/webpack/{metrics.ts → metrics.js} +18 -29
  67. package/types/constants.d.ts +0 -6
  68. package/types/index.d.ts +0 -2
  69. package/types/jobs/create-job.d.ts +1 -1
  70. package/types/jobs/create-jobs.d.ts +1 -1
  71. package/types/report/add-row-metric-data.d.ts +1 -1
  72. package/types/webpack/constants.d.ts +9 -33
  73. package/types/webpack/extract/index.d.ts +1 -1
  74. package/types/webpack/extract/modules-packages-duplicate.d.ts +1 -2
  75. package/types/webpack/extract/modules-packages.d.ts +1 -1
  76. package/types/webpack/metrics.d.ts +153 -116
  77. package/lib/transformers/budgets-insights.js +0 -133
  78. package/lib/transformers/budgets-insights.js.map +0 -1
  79. package/lib/transformers/index.js +0 -28
  80. package/lib/transformers/index.js.map +0 -1
  81. package/lib/types.js +0 -3
  82. package/lib/types.js.map +0 -1
  83. package/lib-esm/transformers/budgets-insights.js +0 -126
  84. package/lib-esm/transformers/budgets-insights.js.map +0 -1
  85. package/lib-esm/transformers/index.js +0 -3
  86. package/lib-esm/transformers/index.js.map +0 -1
  87. package/lib-esm/types.js +0 -2
  88. package/lib-esm/types.js.map +0 -1
  89. package/src/transformers/budgets-insights.ts +0 -212
  90. package/src/transformers/index.ts +0 -1
  91. package/src/types.ts +0 -14
  92. package/types/transformers/budgets-insights.d.ts +0 -34
  93. package/types/transformers/index.d.ts +0 -1
  94. package/types/types.d.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/webpack/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/webpack/metrics.js"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,kBAAkB,EAAE;QAClB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,uCAAuC;QACpD,GAAG,EAAE,+DAA+D;QACpE,IAAI,EAAE,qBAAqB;KAC5B;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,kFAAkF;QAC/F,GAAG,EAAE,+DAA+D;QACpE,IAAI,EAAE,qBAAqB;KAC5B;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,6EAA6E;QAC1F,GAAG,EAAE,+DAA+D;QACpE,IAAI,EAAE,qBAAqB;KAC5B;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,yDAAyD;QACtE,GAAG,EAAE,+DAA+D;QACpE,IAAI,EAAE,sBAAsB;QAC5B,cAAc,EAAE,KAAK;KACtB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,8CAA8C;QAC3D,GAAG,EAAE,+DAA+D;QACpE,IAAI,EAAE,mBAAmB;QACzB,cAAc,EAAE,KAAK;KACtB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,4CAA4C;QACzD,GAAG,EAAE,+DAA+D;QACpE,IAAI,EAAE,mBAAmB;QACzB,cAAc,EAAE,KAAK;KACtB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,6CAA6C;QAC1D,GAAG,EAAE,kEAAkE;QACvE,IAAI,EAAE,mBAAmB;QACzB,cAAc,EAAE,KAAK;KACtB;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,6DAA6D;QAC1E,GAAG,EAAE,kEAAkE;QACvE,IAAI,EAAE,mBAAmB;QACzB,cAAc,EAAE,KAAK;KACtB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,2EAA2E;QACxF,GAAG,EAAE,kEAAkE;QACvE,IAAI,EAAE,sBAAsB;QAC5B,cAAc,EAAE,KAAK;KACtB;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,8CAA8C;QAC3D,GAAG,EAAE,iEAAiE;QACtE,IAAI,EAAE,mBAAmB;QACzB,cAAc,EAAE,KAAK;KACtB;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,+CAA+C;QAC5D,GAAG,EAAE,iEAAiE;QACtE,IAAI,EAAE,mBAAmB;QACzB,cAAc,EAAE,KAAK;KACtB;IACD,KAAK,EAAE;QACL,iBAAiB,EAAE;YACjB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,qBAAqB;SAC5B;QACD,kBAAkB,EAAE;YAClB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,qBAAqB;SAC5B;QACD,kBAAkB,EAAE;YAClB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,qBAAqB;SAC5B;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,qBAAqB;SAC5B;QACD,mBAAmB,EAAE;YACnB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,qBAAqB;SAC5B;QACD,mBAAmB,EAAE;YACnB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,qBAAqB;SAC5B;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,qBAAqB;SAC5B;KACF;CACF,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@bundle-stats/utils",
3
- "version": "3.4.0-beta.0",
3
+ "version": "4.0.0-alpha.14",
4
4
  "description": "BundleStats utils",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
7
7
  "types": "types/index.d.ts",
8
8
  "sideEffects": false,
9
9
  "engines": {
10
- "node": ">= 12.0"
10
+ "node": ">= 14.0"
11
11
  },
12
12
  "directories": {
13
13
  "lib": "lib"
@@ -35,28 +35,28 @@
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": "^3.4.0-beta.0",
39
- "@bundle-stats/plugin-webpack-validate": "^3.4.0-beta.0",
40
- "convert-units": "3.0.0-beta.2",
38
+ "@bundle-stats/plugin-webpack-filter": "^4.0.0-alpha.14",
39
+ "@bundle-stats/plugin-webpack-validate": "^4.0.0-alpha.14",
40
+ "convert-units": "3.0.0-beta.4",
41
41
  "query-string": "^7.1.0",
42
42
  "serialize-query-params": "^1.3.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@types/jest": "27.4.1",
46
- "@types/lodash": "4.14.181",
47
- "core-js": "3.21.1",
45
+ "@types/jest": "28.1.4",
46
+ "@types/lodash": "4.14.182",
47
+ "core-js": "3.23.3",
48
48
  "jest": "27.5.1",
49
- "jest-cli": "27.5.1",
49
+ "jest-cli": "28.1.2",
50
50
  "jest-date-mock": "1.0.8",
51
51
  "lodash": "4.17.21",
52
52
  "regenerator-runtime": "0.13.9",
53
53
  "rimraf": "3.0.2",
54
- "ts-jest": "27.1.4",
55
- "typescript": "4.6.3"
54
+ "ts-jest": "28.0.5",
55
+ "typescript": "4.7.4"
56
56
  },
57
57
  "peerDependencies": {
58
58
  "core-js": "^3.0.0",
59
59
  "lodash": "^4.0.0"
60
60
  },
61
- "gitHead": "45774cba629c670df5528d72a67d3cfaddd8fed7"
61
+ "gitHead": "acd6e6e99679ef3216e8022910d5e2d1d080f118"
62
62
  }
package/src/constants.ts CHANGED
@@ -165,10 +165,3 @@ export interface BrowsertimeMetrics {
165
165
  visualComplete95: MetricRun;
166
166
  visualComplete99: MetricRun;
167
167
  }
168
-
169
- export enum InsightType {
170
- ERROR = 'ERROR',
171
- WARNING = 'WARNING',
172
- INFO = 'INFO',
173
- SUCCESS = 'SUCCESS',
174
- }
package/src/index.js CHANGED
@@ -1,8 +1,6 @@
1
1
  export * from './browsertime';
2
2
  export * from './config';
3
- export * from './constants';
4
3
  // export * as I18N from './i18n';
5
4
  export * from './jobs';
6
5
  export * from './report';
7
6
  export * from './utils';
8
- export * as transformers from './transformers';
@@ -14,7 +14,7 @@ const GENERIC_PROPS = ['meta', 'insights', 'metrics'];
14
14
  /*
15
15
  * Create job from stats
16
16
  */
17
- export const createJob = (source, baseline, options = {}) => SOURCE_PATHS.reduce((agg, sourcePath) => {
17
+ export const createJob = (source, baseline) => SOURCE_PATHS.reduce((agg, sourcePath) => {
18
18
  const rawData = get(source, sourcePath);
19
19
 
20
20
  if (!rawData) {
@@ -27,7 +27,7 @@ export const createJob = (source, baseline, options = {}) => SOURCE_PATHS.reduce
27
27
  return agg;
28
28
  }
29
29
 
30
- const extractedData = sourceModule.extract(rawData, baseline, options[sourcePath]);
30
+ const extractedData = sourceModule.extract(rawData, baseline);
31
31
  const summary = createSummary(
32
32
  SOURCE_FNS[sourcePath].SUMMARY_METRIC_PATHS,
33
33
  get(baseline, `metrics.${sourcePath}`, {}),
@@ -6,9 +6,9 @@ import { createJob } from './create-job';
6
6
  /*
7
7
  * Create jobs from sources
8
8
  */
9
- export const createJobs = (sources, options) => {
9
+ export const createJobs = (sources) => {
10
10
  const jobs = reverse([...sources]).reduce((agg, source, idx) => {
11
- const job = createJob(source, last(agg), options);
11
+ const job = createJob(source, last(agg));
12
12
  const internalBuildNumber = job.internalBuildNumber || idx + 1;
13
13
  const label = `Job #${internalBuildNumber}`;
14
14
 
@@ -3,14 +3,27 @@ import round from 'lodash/round';
3
3
 
4
4
  const convert = configureMeasurements({ digital, time });
5
5
 
6
+ const FILE_SIZE_UNIT = 'B';
7
+ const DURATION_UNIT = 'ms';
8
+
6
9
  export const formatFileSize = (val) => {
7
- const res = convert(val).from('B').toBest();
8
- return `${round(res.val, 2)}${res.unit}`;
10
+ const res = convert(val).from(FILE_SIZE_UNIT).toBest();
11
+
12
+ if (res) {
13
+ return `${round(res.val, 2)}${res.unit}`;
14
+ }
15
+
16
+ return `${round(val || 0, 2)}${FILE_SIZE_UNIT}`;
9
17
  };
10
18
 
11
19
  export const formatDuration = (val) => {
12
- const res = convert(val).from('ms').toBest();
13
- return `${round(res.val, 4)}${res.unit}`;
20
+ const res = convert(val).from(DURATION_UNIT).toBest();
21
+
22
+ if (res) {
23
+ return `${round(res.val, 4)}${res.unit}`;
24
+ }
25
+
26
+ return `${round(val || 0, 4)}${DURATION_UNIT}`;
14
27
  };
15
28
 
16
29
  export const formatNumber = (val) => `${val}`;
@@ -12,34 +12,19 @@ export const SECTIONS = [
12
12
  SECTION_WEBPACK_PACKAGES,
13
13
  ];
14
14
 
15
- export enum MetricId {
16
- BundleSize = 'totalSizeByTypeALL',
17
- TotalInitialSizeJS = 'totalInitialSizeJS',
18
- TotalInitialSizeCSS = 'totalInitialSizeCSS',
19
- CacheInvalidation = 'cacheInvalidation',
20
- ModuleName = 'moduleCount',
21
- DuplicateModulesCount = 'duplicateModulesCount',
22
- DuplicateCode = 'duplicateCode',
23
- ChunkCount = 'chunkCount',
24
- AssetCount = 'assetCount',
25
- PackageCount = 'packageCount',
26
- DuplicatePackagesCount = 'duplicatePackagesCount',
27
- }
28
-
29
- export const SIZE_BY_TYPE_METRIC_ID_ALL = 'ALL';
30
- export const SIZE_BY_TYPE_METRIC_ID_PREFIX = 'totalSizeByType';
31
-
32
- export enum SizeByTypeMetricId {
33
- JS = 'totalSizeByTypeJS',
34
- CSS = 'totalSizeByTypeCSS',
35
- IMG = 'totalSizeByTypeIMG',
36
- Media = 'totalSizeByTypeMEDIA',
37
- Font = 'totalSizeByTypeFONT',
38
- HTML = 'totalSizeByTypeHTML',
39
- Other = 'totalSizeByTypeOTHER',
40
- }
41
-
42
- export const SUMMARY_METRIC_PATHS = Object.values(MetricId);
15
+ export const SUMMARY_METRIC_PATHS = [
16
+ 'totalSizeByTypeALL',
17
+ 'totalInitialSizeJS',
18
+ 'totalInitialSizeCSS',
19
+ 'cacheInvalidation',
20
+ 'moduleCount',
21
+ 'duplicateModulesCount',
22
+ 'duplicateCode',
23
+ 'chunkCount',
24
+ 'assetCount',
25
+ 'packageCount',
26
+ 'duplicatePackagesCount',
27
+ ];
43
28
 
44
29
  const PACKAGE_PREFIX = /(?:node_modules|~)(?:\/\.pnpm)?/;
45
30
  const PACKAGE_SLUG = /[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*/;
@@ -4,21 +4,21 @@ import template from 'lodash/template';
4
4
  import { INSIGHT_INFO } from '../../config/insights';
5
5
  import { getMetricRunInfo } from '../../utils/metrics';
6
6
  import { getMetricType } from '../utils';
7
- import { MetricId } from '../constants';
8
7
 
9
8
  const INFO_TEMPLATE = template(
10
9
  '<%= metric %> — <%= displayValue %> (<%= displayDeltaPercentage %>).',
11
10
  );
11
+ const METRIC_NAME = 'totalSizeByTypeALL';
12
12
 
13
13
  export const extractAssetsSizeTotalInsight = (
14
14
  webpackStats,
15
15
  currentExtractedData,
16
16
  baselineBundleStats,
17
17
  ) => {
18
- const currentValue = get(currentExtractedData, ['metrics', MetricId.BundleSize, 'value'], 0);
19
- const baselineValue = get(baselineBundleStats, ['metrics', 'webpack', MetricId.BundleSize, 'value'], 0);
18
+ const currentValue = get(currentExtractedData, ['metrics', METRIC_NAME, 'value'], 0);
19
+ const baselineValue = get(baselineBundleStats, ['metrics', 'webpack', METRIC_NAME, 'value'], 0);
20
20
 
21
- const metric = getMetricType(MetricId.BundleSize);
21
+ const metric = getMetricType(METRIC_NAME);
22
22
  const info = getMetricRunInfo(metric, currentValue, baselineValue);
23
23
  const { displayDeltaPercentage, displayValue } = info;
24
24
 
@@ -4,9 +4,11 @@ import sum from 'lodash/sum';
4
4
 
5
5
  import { FILE_TYPE_CSS, FILE_TYPE_JS, FILE_TYPES } from '../../config/file-types';
6
6
  import { getFileType } from '../../utils/file-types';
7
- import { SIZE_BY_TYPE_METRIC_ID_PREFIX, SIZE_BY_TYPE_METRIC_ID_ALL } from '../constants';
8
7
 
9
- const getMetricName = (fileType) => `${SIZE_BY_TYPE_METRIC_ID_PREFIX}${fileType}`;
8
+ const METRIC_NAME_ALL = 'ALL';
9
+ const METRIC_NAME_PREFIX = 'totalSizeByType';
10
+
11
+ const getMetricName = (fileType) => `${METRIC_NAME_PREFIX}${fileType}`;
10
12
 
11
13
  const generateInitialSizeByType = () => FILE_TYPES.reduce((accumulator, fileType) => ({
12
14
  ...accumulator,
@@ -50,7 +52,7 @@ export const extractAssetsSize = (webpackStats, currentExtractedData) => {
50
52
 
51
53
  const sizes = calculateTotalByType(bundleAssets);
52
54
  const generic = {
53
- [getMetricName(SIZE_BY_TYPE_METRIC_ID_ALL)]: {
55
+ [getMetricName(METRIC_NAME_ALL)]: {
54
56
  value: sum(map(bundleAssets, 'value')),
55
57
  },
56
58
  ...calculateInitialTotals(bundleAssets),
@@ -1,6 +1,5 @@
1
1
  import merge from 'lodash/merge';
2
2
 
3
- import * as budgetsInsights from '../../transformers/budgets-insights';
4
3
  import { extractAssets } from './assets';
5
4
  import { extractAssetsCacheInvalidation } from './assets-cache-invalidation';
6
5
  import { extractAssetsChunkCount } from './assets-chunk-count';
@@ -27,11 +26,10 @@ const extractFns = [
27
26
  extractModulesPackages,
28
27
  extractModulesPackagesCount,
29
28
  extractModulesPackagesDuplicate,
30
- budgetsInsights.getExtract('webpack'),
31
29
  ];
32
30
 
33
- export const extract = (webpackStats, baseline, options) =>
34
- extractFns.reduce(
35
- (agg, extractFn) => merge({}, agg, extractFn(webpackStats, agg, baseline, options)),
36
- {},
37
- );
31
+ export const extract = (webpackStats, baseline) => extractFns.reduce((agg, extractFn) => merge(
32
+ {},
33
+ agg,
34
+ extractFn(webpackStats, agg, baseline),
35
+ ), {});
@@ -3,7 +3,7 @@ import map from 'lodash/map';
3
3
  import orderBy from 'lodash/orderBy';
4
4
  import sum from 'lodash/sum';
5
5
 
6
- import { InsightType } from '../../constants';
6
+ import { INSIGHT_WARNING } from '../../config';
7
7
 
8
8
  export const extractModulesPackagesDuplicate = (webpackStats, currentExtractedData) => {
9
9
  const source = get(currentExtractedData, 'metrics.packages', {});
@@ -89,7 +89,7 @@ export const extractModulesPackagesDuplicate = (webpackStats, currentExtractedDa
89
89
  return {
90
90
  insights: {
91
91
  duplicatePackages: {
92
- type: InsightType.WARNING,
92
+ type: INSIGHT_WARNING,
93
93
  data,
94
94
  },
95
95
  },
@@ -3,80 +3,76 @@ import {
3
3
  METRIC_TYPE_NUMERIC,
4
4
  METRIC_TYPE_PERCENTAGE,
5
5
  } from '../config/metrics';
6
- import { MetricId, SizeByTypeMetricId } from './constants';
7
6
 
8
7
  export const metrics = {
9
- [MetricId.BundleSize]: {
8
+ totalSizeByTypeALL: {
10
9
  label: 'Bundle Size',
11
10
  description: 'Sum of all assets emitted by webpack.',
12
11
  url: 'https://relative-ci.com/documentation/metrics-and-data#assets',
13
12
  type: METRIC_TYPE_FILE_SIZE,
14
- biggerIsBetter: false,
15
13
  },
16
- [MetricId.TotalInitialSizeJS]: {
14
+ totalInitialSizeJS: {
17
15
  label: 'Initial JS',
18
16
  description: 'Sum of all JavaScript assets that are labeled as initial(eg: vendor.js, app.js).',
19
17
  url: 'https://relative-ci.com/documentation/metrics-and-data#assets',
20
18
  type: METRIC_TYPE_FILE_SIZE,
21
- biggerIsBetter: false,
22
19
  },
23
- [MetricId.TotalInitialSizeCSS]: {
20
+ totalInitialSizeCSS: {
24
21
  label: 'Initial CSS',
25
22
  description: 'Sum of all CSS assets that are labeled as initial(eg: vendor.css, app.css).',
26
23
  url: 'https://relative-ci.com/documentation/metrics-and-data#assets',
27
24
  type: METRIC_TYPE_FILE_SIZE,
28
- biggerIsBetter: false,
29
25
  },
30
- [MetricId.CacheInvalidation]: {
26
+ cacheInvalidation: {
31
27
  label: 'Cache Invalidation',
32
28
  description: 'Ratio between the total changed assets and Bundle Size.',
33
29
  url: 'https://relative-ci.com/documentation/metrics-and-data#assets',
34
30
  type: METRIC_TYPE_PERCENTAGE,
35
31
  biggerIsBetter: false,
36
32
  },
37
- [MetricId.ChunkCount]: {
33
+ chunkCount: {
38
34
  label: 'Chunks',
39
35
  description: 'Total number of chunks generated by webpack.',
40
36
  url: 'https://relative-ci.com/documentation/metrics-and-data#assets',
41
37
  type: METRIC_TYPE_NUMERIC,
42
38
  biggerIsBetter: false,
43
39
  },
44
- [MetricId.AssetCount]: {
40
+ assetCount: {
45
41
  label: 'Assets',
46
42
  description: 'Total number of assets emitted by webpack.',
47
43
  url: 'https://relative-ci.com/documentation/metrics-and-data#assets',
48
44
  type: METRIC_TYPE_NUMERIC,
49
45
  biggerIsBetter: false,
50
46
  },
51
- [MetricId.ModuleName]: {
47
+ moduleCount: {
52
48
  label: 'Modules',
53
49
  description: 'Total number of modules bundled by webpack.',
54
50
  url: 'https://relative-ci.com/documentation/metrics-and-data#modules-1',
55
51
  type: METRIC_TYPE_NUMERIC,
56
52
  biggerIsBetter: false,
57
53
  },
58
- [MetricId.DuplicateModulesCount]: {
54
+ duplicateModulesCount: {
59
55
  label: 'Duplicate Modules',
60
56
  description: 'Total number of modules that belong to more than one chunk.',
61
57
  url: 'https://relative-ci.com/documentation/metrics-and-data#modules-1',
62
58
  type: METRIC_TYPE_NUMERIC,
63
59
  biggerIsBetter: false,
64
60
  },
65
- [MetricId.DuplicateCode]: {
61
+ duplicateCode: {
66
62
  label: 'Duplicate Code',
67
63
  description: 'The percentage of total duplicate module size from the total module size.',
68
64
  url: 'https://relative-ci.com/documentation/metrics-and-data#modules-1',
69
65
  type: METRIC_TYPE_PERCENTAGE,
70
66
  biggerIsBetter: false,
71
67
  },
72
- [MetricId.PackageCount]: {
68
+ packageCount: {
73
69
  label: 'Packages',
74
70
  description: 'Total number of packages bundled by webpack.',
75
71
  url: 'https://relative-ci.com/documentation/metrics-and-data#packages',
76
72
  type: METRIC_TYPE_NUMERIC,
77
73
  biggerIsBetter: false,
78
74
  },
79
- [MetricId.DuplicatePackagesCount]: {
75
+ duplicatePackagesCount: {
80
76
  label: 'Duplicate Packages',
81
77
  description: 'Total number of packages that are duplicated.',
82
78
  url: 'https://relative-ci.com/documentation/metrics-and-data#packages',
@@ -84,40 +80,33 @@ export const metrics = {
84
80
  biggerIsBetter: false,
85
81
  },
86
82
  sizes: {
87
- [SizeByTypeMetricId.JS]: {
83
+ totalSizeByTypeJS: {
88
84
  label: 'JS',
89
85
  type: METRIC_TYPE_FILE_SIZE,
90
- biggerIsBetter: false,
91
86
  },
92
- [SizeByTypeMetricId.CSS]: {
87
+ totalSizeByTypeCSS: {
93
88
  label: 'CSS',
94
89
  type: METRIC_TYPE_FILE_SIZE,
95
- biggerIsBetter: false,
96
90
  },
97
- [SizeByTypeMetricId.IMG]: {
91
+ totalSizeByTypeIMG: {
98
92
  label: 'IMG',
99
93
  type: METRIC_TYPE_FILE_SIZE,
100
- biggerIsBetter: false,
101
94
  },
102
- [SizeByTypeMetricId.Media]: {
95
+ totalSizeByTypeMEDIA: {
103
96
  label: 'Media',
104
97
  type: METRIC_TYPE_FILE_SIZE,
105
- biggerIsBetter: false,
106
98
  },
107
- [SizeByTypeMetricId.Font]: {
99
+ totalSizeByTypeFONT: {
108
100
  label: 'Fonts',
109
101
  type: METRIC_TYPE_FILE_SIZE,
110
- biggerIsBetter: false,
111
102
  },
112
- [SizeByTypeMetricId.HTML]: {
103
+ totalSizeByTypeHTML: {
113
104
  label: 'HTML',
114
105
  type: METRIC_TYPE_FILE_SIZE,
115
- biggerIsBetter: false,
116
106
  },
117
- [SizeByTypeMetricId.Other]: {
107
+ totalSizeByTypeOTHER: {
118
108
  label: 'Other',
119
109
  type: METRIC_TYPE_FILE_SIZE,
120
- biggerIsBetter: false,
121
110
  },
122
111
  },
123
112
  };
@@ -157,9 +157,3 @@ export interface BrowsertimeMetrics {
157
157
  visualComplete95: MetricRun;
158
158
  visualComplete99: MetricRun;
159
159
  }
160
- export declare enum InsightType {
161
- ERROR = "ERROR",
162
- WARNING = "WARNING",
163
- INFO = "INFO",
164
- SUCCESS = "SUCCESS"
165
- }
package/types/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
1
  export * from "./browsertime";
2
2
  export * from "./config";
3
- export * from "./constants";
4
3
  export * from "./jobs";
5
4
  export * from "./report";
6
5
  export * from "./utils";
7
- export * as transformers from "./transformers";
@@ -1 +1 @@
1
- export function createJob(source: any, baseline: any, options?: {}): {};
1
+ export function createJob(source: any, baseline: any): {};
@@ -1 +1 @@
1
- export function createJobs(sources: any, options: any): any;
1
+ export function createJobs(sources: any): any;
@@ -1,5 +1,5 @@
1
1
  import * as types from './types';
2
- export declare const getAddRowMetricData: (metricType?: string | undefined) => (row: types.ReportRow) => {
2
+ export declare const getAddRowMetricData: (metricType?: string) => (row: types.ReportRow) => {
3
3
  biggerIsBetter: any;
4
4
  label: any;
5
5
  changed: boolean;
@@ -1,33 +1,9 @@
1
- export declare const SECTION_WEBPACK_STATS = "stats";
2
- export declare const SECTION_WEBPACK_SIZES = "sizes";
3
- export declare const SECTION_WEBPACK_ASSETS = "assets";
4
- export declare const SECTION_WEBPACK_MODULES = "modules";
5
- export declare const SECTION_WEBPACK_PACKAGES = "packages";
6
- export declare const SECTIONS: string[];
7
- export declare enum MetricId {
8
- BundleSize = "totalSizeByTypeALL",
9
- TotalInitialSizeJS = "totalInitialSizeJS",
10
- TotalInitialSizeCSS = "totalInitialSizeCSS",
11
- CacheInvalidation = "cacheInvalidation",
12
- ModuleName = "moduleCount",
13
- DuplicateModulesCount = "duplicateModulesCount",
14
- DuplicateCode = "duplicateCode",
15
- ChunkCount = "chunkCount",
16
- AssetCount = "assetCount",
17
- PackageCount = "packageCount",
18
- DuplicatePackagesCount = "duplicatePackagesCount"
19
- }
20
- export declare const SIZE_BY_TYPE_METRIC_ID_ALL = "ALL";
21
- export declare const SIZE_BY_TYPE_METRIC_ID_PREFIX = "totalSizeByType";
22
- export declare enum SizeByTypeMetricId {
23
- JS = "totalSizeByTypeJS",
24
- CSS = "totalSizeByTypeCSS",
25
- IMG = "totalSizeByTypeIMG",
26
- Media = "totalSizeByTypeMEDIA",
27
- Font = "totalSizeByTypeFONT",
28
- HTML = "totalSizeByTypeHTML",
29
- Other = "totalSizeByTypeOTHER"
30
- }
31
- export declare const SUMMARY_METRIC_PATHS: MetricId[];
32
- export declare const MODULE_PATH_PACKAGES: RegExp;
33
- export declare const PACKAGE_PATH_NAME: RegExp;
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
+ export const SECTIONS: string[];
7
+ export const SUMMARY_METRIC_PATHS: string[];
8
+ export const MODULE_PATH_PACKAGES: RegExp;
9
+ export const PACKAGE_PATH_NAME: RegExp;
@@ -1 +1 @@
1
- export function extract(webpackStats: any, baseline: any, options: any): {};
1
+ export function extract(webpackStats: any, baseline: any): {};
@@ -8,7 +8,7 @@ export function extractModulesPackagesDuplicate(webpackStats: any, currentExtrac
8
8
  } | {
9
9
  insights: {
10
10
  duplicatePackages: {
11
- type: InsightType;
11
+ type: string;
12
12
  data: {};
13
13
  };
14
14
  };
@@ -18,4 +18,3 @@ export function extractModulesPackagesDuplicate(webpackStats: any, currentExtrac
18
18
  };
19
19
  };
20
20
  };
21
- import { InsightType } from "../../constants";
@@ -4,4 +4,4 @@ export declare const getPackageMetaFromModulePath: (modulePath: string) => {
4
4
  name: unknown;
5
5
  path: string;
6
6
  } | null;
7
- export declare const extractModulesPackages: (webpackStats?: any, currentExtractedData?: WebpackMetricsModules | undefined) => WebpackMetricsPackages;
7
+ export declare const extractModulesPackages: (webpackStats?: any, currentExtractedData?: WebpackMetricsModules) => WebpackMetricsPackages;