@bundle-stats/utils 4.7.8-beta.1 → 4.8.0-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.
@@ -4,36 +4,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.normalizeChunkId = exports.getPackagePublicName = exports.getMetricType = exports.getMetricDeleted = exports.getMetricAdded = exports.calculateCacheInvalidation = exports.getModuleName = exports.getAssetName = void 0;
7
- const last_1 = __importDefault(require("lodash/last"));
8
- const map_1 = __importDefault(require("lodash/map"));
9
7
  const round_1 = __importDefault(require("lodash/round"));
10
8
  const config_1 = require("../config");
11
9
  const metrics_1 = require("../utils/metrics");
12
10
  const metrics_2 = require("./metrics");
13
- const HASH_PATTERN = '[a-f|0-9]{5,32}';
14
- const HASH_SEPARATOR_PATTERN = '[-|.]';
15
- const EXTENSION_PATTERN = /(?:\.[a-z|0-9]{2,}){1,}/;
11
+ const HEX_HASH_PATTERN = '[a-f0-9]{5,32}';
12
+ const HEX_HASH_SEPARATOR_PATTERN = '[-_.~]';
13
+ const BASE64URL_HASH_PATTERN = '[A-Za-z0-9_-]{4,}';
14
+ const BASE64URL_SEPARATOR_PATTERN = '[.~]';
15
+ const EXTENSION_PATTERN = /(?:\.[a-z0-9]{2,}){1,}/;
16
16
  const PATTERNS = [
17
- `(.*)${HASH_SEPARATOR_PATTERN}${HASH_PATTERN}(${EXTENSION_PATTERN.source})$`,
18
- `(static)/${HASH_PATTERN}(.*${EXTENSION_PATTERN.source})$`,
17
+ `(.*)${HEX_HASH_SEPARATOR_PATTERN}${HEX_HASH_PATTERN}(${EXTENSION_PATTERN.source})$`,
18
+ `(.*)${BASE64URL_SEPARATOR_PATTERN}${BASE64URL_HASH_PATTERN}(${EXTENSION_PATTERN.source})$`,
19
+ `(static)/${HEX_HASH_PATTERN}(.*${EXTENSION_PATTERN.source})$`,
19
20
  ].map((pattern) => new RegExp(pattern));
20
21
  const NO_BASENAME = /(^|.*\/)\..*$/;
21
- const getAssetName = (assetFilepath) => {
22
- if (!assetFilepath) {
22
+ const getAssetName = (statsAssetPath) => {
23
+ if (!statsAssetPath) {
23
24
  return '';
24
25
  }
25
- let result;
26
- for (let i = 0; i < PATTERNS.length && !result; i += 1) {
26
+ for (let i = 0; i < PATTERNS.length; i += 1) {
27
27
  const pattern = PATTERNS[i];
28
- const extracted = assetFilepath.replace(pattern, '$1$2');
29
- if (extracted && extracted !== assetFilepath && !NO_BASENAME.test(extracted)) {
30
- result = extracted;
28
+ const extracted = statsAssetPath.replace(pattern, '$1$2');
29
+ if (extracted && extracted !== statsAssetPath && !NO_BASENAME.test(extracted)) {
30
+ return extracted;
31
31
  }
32
32
  }
33
- if (!result) {
34
- return assetFilepath;
35
- }
36
- return result;
33
+ return statsAssetPath;
37
34
  };
38
35
  exports.getAssetName = getAssetName;
39
36
  const NAME_WITH_LOADERS = /!/;
@@ -44,7 +41,8 @@ const getModuleName = (name) => {
44
41
  return '';
45
42
  }
46
43
  if (NAME_WITH_LOADERS.test(name)) {
47
- const normalizedName = (0, last_1.default)(name.split(NAME_WITH_LOADERS));
44
+ const segments = name.split(NAME_WITH_LOADERS);
45
+ const normalizedName = segments[segments.length - 1];
48
46
  if (normalizedName?.trim()) {
49
47
  return normalizedName;
50
48
  }
@@ -77,18 +75,19 @@ const calculateCacheInvalidation = (rows) => {
77
75
  };
78
76
  exports.calculateCacheInvalidation = calculateCacheInvalidation;
79
77
  const getMetricAdded = (runs) => {
80
- const [current, baseline] = (0, map_1.default)(runs, 'value');
78
+ const [current, baseline] = runs?.map((run) => run?.value) || [];
81
79
  return Boolean(current !== null && !baseline);
82
80
  };
83
81
  exports.getMetricAdded = getMetricAdded;
84
82
  const getMetricDeleted = (runs) => {
85
- const [current, baseline] = (0, map_1.default)(runs, 'value');
83
+ const [current, baseline] = runs?.map((run) => run?.value) || [];
86
84
  return Boolean(baseline !== null && !current);
87
85
  };
88
86
  exports.getMetricDeleted = getMetricDeleted;
89
87
  exports.getMetricType = (0, metrics_1.createGetMetricType)(metrics_2.metrics);
90
88
  const getPackagePublicName = (packageId) => {
91
- const name = (0, last_1.default)(packageId.split(config_1.PACKAGES_SEPARATOR));
89
+ const packageNames = packageId.split(config_1.PACKAGES_SEPARATOR);
90
+ const name = packageNames[packageNames.length - 1];
92
91
  return name.split(config_1.PACKAGE_ID_SEPARATOR)[0];
93
92
  };
94
93
  exports.getPackagePublicName = getPackagePublicName;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/webpack/utils.js"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAC/B,qDAA6B;AAC7B,yDAAiC;AAEjC,sCAAqE;AACrE,8CAAuD;AACvD,uCAAoC;AAGpC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAGvC,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAGvC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAEpD,MAAM,QAAQ,GAAG;IAEf,OAAO,sBAAsB,GAAG,YAAY,IAAI,iBAAiB,CAAC,MAAM,IAAI;IAG5E,YAAY,YAAY,MAAM,iBAAiB,CAAC,MAAM,IAAI;CAC3D,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAExC,MAAM,WAAW,GAAG,eAAe,CAAC;AAK7B,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,EAAE;IAC5C,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,MAAM,CAAC;IAEX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEzD,IAAI,SAAS,IAAI,SAAS,KAAK,aAAa,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5E,MAAM,GAAG,SAAS,CAAC;SACpB;KACF;IAED,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,aAAa,CAAC;KACtB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AArBW,QAAA,YAAY,gBAqBvB;AAGF,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAG9B,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAGnD,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AAEjD,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,EAAE;IACpC,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IAED,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChC,MAAM,cAAc,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE3D,IAAI,cAAc,EAAE,IAAI,EAAE,EAAE;YAC1B,OAAO,cAAc,CAAC;SACvB;KACF;IAED,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;KAC5C;IAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;KAC7C;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAtBW,QAAA,aAAa,iBAsBxB;AAQK,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE,EAAE;IACjD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QAEjD,IAAI,KAAK,IAAI,OAAO,EAAE;YACpB,OAAO;SACR;QAED,IAAI,OAAO,EAAE;YACX,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAC9B;QAED,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,CAAC,EAAE;QAChB,OAAO,CAAC,CAAC;KACV;IAED,OAAO,IAAA,eAAK,EAAC,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AAtBW,QAAA,0BAA0B,8BAsBrC;AAEK,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,EAAE;IACrC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAA,aAAG,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/C,OAAO,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC,CAAC;AAJW,QAAA,cAAc,kBAIzB;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,EAAE;IACvC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAA,aAAG,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/C,OAAO,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B;AAQW,QAAA,aAAa,GAAG,IAAA,6BAAmB,EAAC,iBAAO,CAAC,CAAC;AAQnD,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,EAAE;IAEhD,MAAM,IAAI,GAAG,IAAA,cAAI,EAAC,SAAS,CAAC,KAAK,CAAC,2BAAkB,CAAC,CAAC,CAAC;IAGvD,OAAO,IAAI,CAAC,KAAK,CAAC,6BAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAMK,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AAAnD,QAAA,gBAAgB,oBAAmC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/webpack/utils.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,30 @@
1
- import last from 'lodash/last';
2
- import map from 'lodash/map';
3
1
  import round from 'lodash/round';
4
2
  import { PACKAGES_SEPARATOR, PACKAGE_ID_SEPARATOR } from '../config';
5
3
  import { createGetMetricType } from '../utils/metrics';
6
4
  import { metrics } from './metrics';
7
- const HASH_PATTERN = '[a-f|0-9]{5,32}';
8
- const HASH_SEPARATOR_PATTERN = '[-|.]';
9
- const EXTENSION_PATTERN = /(?:\.[a-z|0-9]{2,}){1,}/;
5
+ const HEX_HASH_PATTERN = '[a-f0-9]{5,32}';
6
+ const HEX_HASH_SEPARATOR_PATTERN = '[-_.~]';
7
+ const BASE64URL_HASH_PATTERN = '[A-Za-z0-9_-]{4,}';
8
+ const BASE64URL_SEPARATOR_PATTERN = '[.~]';
9
+ const EXTENSION_PATTERN = /(?:\.[a-z0-9]{2,}){1,}/;
10
10
  const PATTERNS = [
11
- `(.*)${HASH_SEPARATOR_PATTERN}${HASH_PATTERN}(${EXTENSION_PATTERN.source})$`,
12
- `(static)/${HASH_PATTERN}(.*${EXTENSION_PATTERN.source})$`,
11
+ `(.*)${HEX_HASH_SEPARATOR_PATTERN}${HEX_HASH_PATTERN}(${EXTENSION_PATTERN.source})$`,
12
+ `(.*)${BASE64URL_SEPARATOR_PATTERN}${BASE64URL_HASH_PATTERN}(${EXTENSION_PATTERN.source})$`,
13
+ `(static)/${HEX_HASH_PATTERN}(.*${EXTENSION_PATTERN.source})$`,
13
14
  ].map((pattern) => new RegExp(pattern));
14
15
  const NO_BASENAME = /(^|.*\/)\..*$/;
15
- export const getAssetName = (assetFilepath) => {
16
- if (!assetFilepath) {
16
+ export const getAssetName = (statsAssetPath) => {
17
+ if (!statsAssetPath) {
17
18
  return '';
18
19
  }
19
- let result;
20
- for (let i = 0; i < PATTERNS.length && !result; i += 1) {
20
+ for (let i = 0; i < PATTERNS.length; i += 1) {
21
21
  const pattern = PATTERNS[i];
22
- const extracted = assetFilepath.replace(pattern, '$1$2');
23
- if (extracted && extracted !== assetFilepath && !NO_BASENAME.test(extracted)) {
24
- result = extracted;
22
+ const extracted = statsAssetPath.replace(pattern, '$1$2');
23
+ if (extracted && extracted !== statsAssetPath && !NO_BASENAME.test(extracted)) {
24
+ return extracted;
25
25
  }
26
26
  }
27
- if (!result) {
28
- return assetFilepath;
29
- }
30
- return result;
27
+ return statsAssetPath;
31
28
  };
32
29
  const NAME_WITH_LOADERS = /!/;
33
30
  const NAME_WITH_MODULES = /\s?\+\s?\d*\s?modules$/;
@@ -37,7 +34,8 @@ export const getModuleName = (name) => {
37
34
  return '';
38
35
  }
39
36
  if (NAME_WITH_LOADERS.test(name)) {
40
- const normalizedName = last(name.split(NAME_WITH_LOADERS));
37
+ const segments = name.split(NAME_WITH_LOADERS);
38
+ const normalizedName = segments[segments.length - 1];
41
39
  if (normalizedName === null || normalizedName === void 0 ? void 0 : normalizedName.trim()) {
42
40
  return normalizedName;
43
41
  }
@@ -68,16 +66,17 @@ export const calculateCacheInvalidation = (rows) => {
68
66
  return round((invalidated / cached) * 100, 2);
69
67
  };
70
68
  export const getMetricAdded = (runs) => {
71
- const [current, baseline] = map(runs, 'value');
69
+ const [current, baseline] = (runs === null || runs === void 0 ? void 0 : runs.map((run) => run === null || run === void 0 ? void 0 : run.value)) || [];
72
70
  return Boolean(current !== null && !baseline);
73
71
  };
74
72
  export const getMetricDeleted = (runs) => {
75
- const [current, baseline] = map(runs, 'value');
73
+ const [current, baseline] = (runs === null || runs === void 0 ? void 0 : runs.map((run) => run === null || run === void 0 ? void 0 : run.value)) || [];
76
74
  return Boolean(baseline !== null && !current);
77
75
  };
78
76
  export const getMetricType = createGetMetricType(metrics);
79
77
  export const getPackagePublicName = (packageId) => {
80
- const name = last(packageId.split(PACKAGES_SEPARATOR));
78
+ const packageNames = packageId.split(PACKAGES_SEPARATOR);
79
+ const name = packageNames[packageNames.length - 1];
81
80
  return name.split(PACKAGE_ID_SEPARATOR)[0];
82
81
  };
83
82
  export const normalizeChunkId = (chunkId) => chunkId.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/webpack/utils.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/webpack/utils.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.7.8-beta.1",
3
+ "version": "4.8.0-beta.0",
4
4
  "description": "BundleStats utils",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -35,15 +35,15 @@
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.7.8-beta.1",
39
- "@bundle-stats/plugin-webpack-validate": "4.7.8-beta.1",
38
+ "@bundle-stats/plugin-webpack-filter": "4.8.0-beta.0",
39
+ "@bundle-stats/plugin-webpack-validate": "4.8.0-beta.0",
40
40
  "query-string": "7.1.3",
41
41
  "serialize-query-params": "2.0.2"
42
42
  },
43
43
  "devDependencies": {
44
- "@types/jest": "29.5.6",
45
- "@types/lodash": "4.14.200",
46
- "core-js": "3.33.1",
44
+ "@types/jest": "29.5.8",
45
+ "@types/lodash": "4.14.201",
46
+ "core-js": "3.33.2",
47
47
  "jest": "29.7.0",
48
48
  "jest-cli": "29.7.0",
49
49
  "jest-date-mock": "1.0.8",
@@ -57,5 +57,5 @@
57
57
  "core-js": "^3.0.0",
58
58
  "lodash": "^4.0.0"
59
59
  },
60
- "gitHead": "d9b5768b72af63332adcc97cd2451d0353549c71"
60
+ "gitHead": "6258f0ed988b422476efdd0045b6f2fcf39477f3"
61
61
  }
@@ -1,26 +1,29 @@
1
- import last from 'lodash/last';
2
- import map from 'lodash/map';
3
1
  import round from 'lodash/round';
4
2
 
5
3
  import { PACKAGES_SEPARATOR, PACKAGE_ID_SEPARATOR } from '../config';
6
4
  import { createGetMetricType } from '../utils/metrics';
7
5
  import { metrics } from './metrics';
8
6
 
9
- // Match hex hash
10
- const HASH_PATTERN = '[a-f|0-9]{5,32}';
7
+ // Hex patterns
8
+ const HEX_HASH_PATTERN = '[a-f0-9]{5,32}';
9
+ const HEX_HASH_SEPARATOR_PATTERN = '[-_.~]';
11
10
 
12
- // Match hash separator
13
- const HASH_SEPARATOR_PATTERN = '[-|.]';
11
+ // Base64URL patterns
12
+ const BASE64URL_HASH_PATTERN = '[A-Za-z0-9_-]{4,}';
13
+ const BASE64URL_SEPARATOR_PATTERN = '[.~]';
14
14
 
15
15
  // Match multiple extensions: .js, .js.gz, .min.js, .chunk.js
16
- const EXTENSION_PATTERN = /(?:\.[a-z|0-9]{2,}){1,}/;
16
+ const EXTENSION_PATTERN = /(?:\.[a-z0-9]{2,}){1,}/;
17
17
 
18
18
  const PATTERNS = [
19
- // Match path/name-HASH.ext, path/name.HASH.ext, path/name-HASH.chunk.ext
20
- `(.*)${HASH_SEPARATOR_PATTERN}${HASH_PATTERN}(${EXTENSION_PATTERN.source})$`,
19
+ // Match path/name-HEXHASH.EXT, path/name.HEXHASH.EXT, path/name_HEXHASH.EXT, path/name-HEXHASH.chunk.EXT
20
+ `(.*)${HEX_HASH_SEPARATOR_PATTERN}${HEX_HASH_PATTERN}(${EXTENSION_PATTERN.source})$`,
21
+
22
+ // Match path/name-BASE64URLHASH.EXT, path/name.BASE64URLHASH.EXT, path/name_BASE64URLHASH.EXT, path/name-BASE64URLHASH.chunk.EXT
23
+ `(.*)${BASE64URL_SEPARATOR_PATTERN}${BASE64URL_HASH_PATTERN}(${EXTENSION_PATTERN.source})$`,
21
24
 
22
25
  // Match static/HASH.ext
23
- `(static)/${HASH_PATTERN}(.*${EXTENSION_PATTERN.source})$`,
26
+ `(static)/${HEX_HASH_PATTERN}(.*${EXTENSION_PATTERN.source})$`,
24
27
  ].map((pattern) => new RegExp(pattern));
25
28
 
26
29
  const NO_BASENAME = /(^|.*\/)\..*$/;
@@ -28,27 +31,21 @@ const NO_BASENAME = /(^|.*\/)\..*$/;
28
31
  /**
29
32
  * Extract (guess) filename from a hashed filename
30
33
  */
31
- export const getAssetName = (assetFilepath) => {
32
- if (!assetFilepath) {
34
+ export const getAssetName = (statsAssetPath?: string | null): string => {
35
+ if (!statsAssetPath) {
33
36
  return '';
34
37
  }
35
38
 
36
- let result;
37
-
38
- for (let i = 0; i < PATTERNS.length && !result; i += 1) {
39
+ for (let i = 0; i < PATTERNS.length; i += 1) {
39
40
  const pattern = PATTERNS[i];
40
- const extracted = assetFilepath.replace(pattern, '$1$2');
41
+ const extracted: string = statsAssetPath.replace(pattern, '$1$2');
41
42
 
42
- if (extracted && extracted !== assetFilepath && !NO_BASENAME.test(extracted)) {
43
- result = extracted;
43
+ if (extracted && extracted !== statsAssetPath && !NO_BASENAME.test(extracted)) {
44
+ return extracted;
44
45
  }
45
46
  }
46
47
 
47
- if (!result) {
48
- return assetFilepath;
49
- }
50
-
51
- return result;
48
+ return statsAssetPath;
52
49
  };
53
50
 
54
51
  // css ./node_modules/css-loader/dist/cjs.js??ref--6-0!./src/assets/styles/default.styl
@@ -60,13 +57,17 @@ const NAME_WITH_MODULES = /\s?\+\s?\d*\s?modules$/;
60
57
  // css ../node_modules../node_modules/package-a
61
58
  const INVALID_CSS_PREFIX = /^css\s.*node_modules(?!\/)/;
62
59
 
63
- export const getModuleName = (name) => {
60
+ /**
61
+ * Extract normalize module name
62
+ */
63
+ export const getModuleName = (name?: string | null) => {
64
64
  if (!name) {
65
65
  return '';
66
66
  }
67
67
 
68
68
  if (NAME_WITH_LOADERS.test(name)) {
69
- const normalizedName = last(name.split(NAME_WITH_LOADERS));
69
+ const segments = name.split(NAME_WITH_LOADERS);
70
+ const normalizedName = segments[segments.length - 1];
70
71
 
71
72
  if (normalizedName?.trim()) {
72
73
  return normalizedName;
@@ -90,7 +91,7 @@ export const getModuleName = (name) => {
90
91
  * The metric is the ratio between the total file size of the files that have changed (exclude
91
92
  * deleted, added) and the total file size
92
93
  */
93
- export const calculateCacheInvalidation = (rows) => {
94
+ export const calculateCacheInvalidation = (rows: Array<any>): number => {
94
95
  let cached = 0;
95
96
  let invalidated = 0;
96
97
 
@@ -114,42 +115,33 @@ export const calculateCacheInvalidation = (rows) => {
114
115
  return round((invalidated / cached) * 100, 2);
115
116
  };
116
117
 
117
- export const getMetricAdded = (runs) => {
118
- const [current, baseline] = map(runs, 'value');
118
+ export const getMetricAdded = (runs: Array<any>): boolean => {
119
+ const [current, baseline] = runs?.map((run) => run?.value) || [];
119
120
 
120
121
  return Boolean(current !== null && !baseline);
121
122
  };
122
123
 
123
- export const getMetricDeleted = (runs) => {
124
- const [current, baseline] = map(runs, 'value');
124
+ export const getMetricDeleted = (runs: Array<any>) => {
125
+ const [current, baseline] = runs?.map((run) => run?.value) || [];
125
126
 
126
127
  return Boolean(baseline !== null && !current);
127
128
  };
128
129
 
129
130
  /**
130
131
  * Get webpack metric data
131
- *
132
- * @param {String} key - Webpack metric key
133
- * @return {Object} Metric data
134
132
  */
135
133
  export const getMetricType = createGetMetricType(metrics);
136
134
 
137
135
  /**
138
136
  * Get public package name from package id
139
- *
140
- * @param {String} packageId
141
- * @return {String} public package name
142
137
  */
143
- export const getPackagePublicName = (packageId) => {
138
+ export const getPackagePublicName = (packageId: string): string => {
144
139
  // Split packages
145
- const name = last(packageId.split(PACKAGES_SEPARATOR));
140
+ const packageNames = packageId.split(PACKAGES_SEPARATOR);
141
+ const name = packageNames[packageNames.length - 1];
146
142
 
147
143
  // Strip package suffix (eg: ~1)
148
144
  return name.split(PACKAGE_ID_SEPARATOR)[0];
149
145
  };
150
146
 
151
- /**
152
- * @param {String|Number} chunkId
153
- * @return {String}
154
- */
155
- export const normalizeChunkId = (chunkId) => chunkId.toString();
147
+ export const normalizeChunkId = (chunkId: string | number): string => chunkId.toString();
@@ -1,8 +1,8 @@
1
- export function getAssetName(assetFilepath: any): any;
2
- export function getModuleName(name: any): any;
3
- export function calculateCacheInvalidation(rows: any): number;
4
- export function getMetricAdded(runs: any): boolean;
5
- export function getMetricDeleted(runs: any): boolean;
6
- export const getMetricType: (key: string, type?: import("..").MetricTypes | undefined) => import("..").Metric;
7
- export function getPackagePublicName(packageId: string): string;
8
- export function normalizeChunkId(chunkId: string | number): string;
1
+ export declare const getAssetName: (statsAssetPath?: string | null) => string;
2
+ export declare const getModuleName: (name?: string | null) => string;
3
+ export declare const calculateCacheInvalidation: (rows: Array<any>) => number;
4
+ export declare const getMetricAdded: (runs: Array<any>) => boolean;
5
+ export declare const getMetricDeleted: (runs: Array<any>) => boolean;
6
+ export declare const getMetricType: (key: string, type?: import("..").MetricTypes | undefined) => import("..").Metric;
7
+ export declare const getPackagePublicName: (packageId: string) => string;
8
+ export declare const normalizeChunkId: (chunkId: string | number) => string;