@bundle-stats/plugin-webpack-filter 4.3.0-beta.3 → 4.4.0-beta.1

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/index.js CHANGED
@@ -1,6 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const PATH_IGNORE_PATTERN = '.map$';
4
+ const getReasons = (moduleData) => {
5
+ const reasonsByModule = {};
6
+ moduleData.reasons?.forEach((reason) => {
7
+ if (reason.module && !reasonsByModule[reason.module]) {
8
+ reasonsByModule[reason.module] = { module: reason.module };
9
+ }
10
+ });
11
+ const reasons = Object.values(reasonsByModule);
12
+ if (reasons.length === 0) {
13
+ return undefined;
14
+ }
15
+ return reasons;
16
+ };
4
17
  exports.default = (source, options = {}) => {
5
18
  const pathIgnorePattern = new RegExp(options.pathIgnorePattern || PATH_IGNORE_PATTERN);
6
19
  const { builtAt, hash } = source;
@@ -36,17 +49,21 @@ exports.default = (source, options = {}) => {
36
49
  if (!concatenatedModule.name) {
37
50
  return aggConcatenatedModules;
38
51
  }
52
+ const reasons = getReasons(concatenatedModule);
39
53
  aggConcatenatedModules.push({
40
54
  name: concatenatedModule.name,
41
55
  size: concatenatedModule.size,
56
+ ...(reasons && { reasons }),
42
57
  });
43
58
  return aggConcatenatedModules;
44
59
  }, []);
60
+ const reasons = getReasons(moduleStats);
45
61
  agg.push({
46
62
  name: moduleStats.name,
47
63
  size: moduleStats.size,
48
64
  chunks: moduleChunks,
49
65
  ...(concatenatedModules && { modules: concatenatedModules }),
66
+ ...(reasons && { reasons }),
50
67
  });
51
68
  return agg;
52
69
  }, []) || [];
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAGA,MAAM,mBAAmB,GAAG,OAAO,CAAC;AA6CpC,kBAAe,CACb,MAAwB,EACxB,UAA8B,EAAE,EACV,EAAE;IACxB,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,CAAC;IAGvF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAGjC,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAEnC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACrD,OAAO,GAAG,CAAC;SACZ;QAED,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAsC,CAAC,IAAI,EAAE,CAAC;IAEnD,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAEnC,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,WAAW,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;YACxD,OAAO,GAAG,CAAC;SACZ;QAED,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAsC,CAAC,IAAI,EAAE,CAAC;IAEnD,MAAM,OAAO,GACX,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;QAE1C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACrB,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,YAAY,GAChB,WAAW,CAAC,MAAM,EAAE,MAAM,CACxB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,WAAW,CAChE,IAAI,EAAE,CAAC;QAEV,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CACrD,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,EAAE;YAC7C,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;gBAC5B,OAAO,sBAAsB,CAAC;aAC/B;YAED,sBAAsB,CAAC,IAAI,CAAC;gBAC1B,IAAI,EAAE,kBAAkB,CAAC,IAAI;gBAC7B,IAAI,EAAE,kBAAkB,CAAC,IAAI;aAC9B,CAAC,CAAC;YAEH,OAAO,sBAAsB,CAAC;QAChC,CAAC,EACD,EAAmD,CACpD,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,MAAM,EAAE,YAAY;YACpB,GAAG,CAAC,mBAAmB,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;SAC7D,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAA2C,CAAC,IAAI,EAAE,CAAC;IAExD,OAAO;QACL,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib-esm/index.js CHANGED
@@ -1,4 +1,18 @@
1
1
  const PATH_IGNORE_PATTERN = '.map$';
2
+ const getReasons = (moduleData) => {
3
+ var _a;
4
+ const reasonsByModule = {};
5
+ (_a = moduleData.reasons) === null || _a === void 0 ? void 0 : _a.forEach((reason) => {
6
+ if (reason.module && !reasonsByModule[reason.module]) {
7
+ reasonsByModule[reason.module] = { module: reason.module };
8
+ }
9
+ });
10
+ const reasons = Object.values(reasonsByModule);
11
+ if (reasons.length === 0) {
12
+ return undefined;
13
+ }
14
+ return reasons;
15
+ };
2
16
  export default (source, options = {}) => {
3
17
  var _a, _b, _c;
4
18
  const pathIgnorePattern = new RegExp(options.pathIgnorePattern || PATH_IGNORE_PATTERN);
@@ -36,17 +50,21 @@ export default (source, options = {}) => {
36
50
  if (!concatenatedModule.name) {
37
51
  return aggConcatenatedModules;
38
52
  }
53
+ const reasons = getReasons(concatenatedModule);
39
54
  aggConcatenatedModules.push({
40
55
  name: concatenatedModule.name,
41
56
  size: concatenatedModule.size,
57
+ ...(reasons && { reasons }),
42
58
  });
43
59
  return aggConcatenatedModules;
44
60
  }, []);
61
+ const reasons = getReasons(moduleStats);
45
62
  agg.push({
46
63
  name: moduleStats.name,
47
64
  size: moduleStats.size,
48
65
  chunks: moduleChunks,
49
66
  ...(concatenatedModules && { modules: concatenatedModules }),
67
+ ...(reasons && { reasons }),
50
68
  });
51
69
  return agg;
52
70
  }, [])) || [];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,mBAAmB,GAAG,OAAO,CAAC;AA6CpC,eAAe,CACb,MAAwB,EACxB,UAA8B,EAAE,EACV,EAAE;;IACxB,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,CAAC;IAGvF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAGjC,MAAM,MAAM,GACV,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAEnC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACrD,OAAO,GAAG,CAAC;SACZ;QAED,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAsC,CAAC,KAAI,EAAE,CAAC;IAEnD,MAAM,MAAM,GACV,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAEnC,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,WAAW,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;YACxD,OAAO,GAAG,CAAC;SACZ;QAED,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAsC,CAAC,KAAI,EAAE,CAAC;IAEnD,MAAM,OAAO,GACX,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;;QAE1C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACrB,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,YAAY,GAChB,CAAA,MAAA,WAAW,CAAC,MAAM,0CAAE,MAAM,CACxB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,WAAW,CAChE,KAAI,EAAE,CAAC;QAEV,MAAM,mBAAmB,GAAG,MAAA,WAAW,CAAC,OAAO,0CAAE,MAAM,CACrD,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,EAAE;YAC7C,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;gBAC5B,OAAO,sBAAsB,CAAC;aAC/B;YAED,sBAAsB,CAAC,IAAI,CAAC;gBAC1B,IAAI,EAAE,kBAAkB,CAAC,IAAI;gBAC7B,IAAI,EAAE,kBAAkB,CAAC,IAAI;aAC9B,CAAC,CAAC;YAEH,OAAO,sBAAsB,CAAC;QAChC,CAAC,EACD,EAAmD,CACpD,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,MAAM,EAAE,YAAY;YACpB,GAAG,CAAC,mBAAmB,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;SAC7D,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAA2C,CAAC,KAAI,EAAE,CAAC;IAExD,OAAO;QACL,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bundle-stats/plugin-webpack-filter",
3
- "version": "4.3.0-beta.3",
3
+ "version": "4.4.0-beta.1",
4
4
  "description": "BundleStats webpack filter plugin",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -48,5 +48,5 @@
48
48
  "peerDependencies": {
49
49
  "core-js": "^3.0.0"
50
50
  },
51
- "gitHead": "b9dff5b3797a3a8bb5bc5afce1900a56080c9ba4"
51
+ "gitHead": "282bd9bf5f16be3a868b946e257f1e89c27c90d6"
52
52
  }
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  // eslint-disable-next-line import/no-extraneous-dependencies
2
- import { StatsCompilation } from 'webpack';
2
+ import { StatsCompilation, StatsModule } from 'webpack';
3
3
 
4
4
  const PATH_IGNORE_PATTERN = '.map$';
5
5
 
@@ -20,15 +20,21 @@ export interface WebpackStatsFilteredChunk {
20
20
  names?: Array<string>;
21
21
  }
22
22
 
23
+ export interface WebpackStatsFilteredModuleReason {
24
+ module: string;
25
+ }
26
+
23
27
  export interface WebpackStatsFilteredModule {
24
28
  name: string;
25
29
  size?: number;
26
30
  chunks: Array<string | number>;
31
+ reasons?: Array<WebpackStatsFilteredModuleReason>;
27
32
  }
28
33
 
29
34
  export interface WebpackStatsFilteredConcatenatedModule {
30
35
  name: string;
31
36
  size?: number;
37
+ reasons?: Array<WebpackStatsFilteredModuleReason>;
32
38
  }
33
39
 
34
40
  export interface WebpackStatsFilteredRootModule extends WebpackStatsFilteredModule {
@@ -43,6 +49,28 @@ export interface WebpackStatsFiltered {
43
49
  modules?: Array<WebpackStatsFilteredRootModule>;
44
50
  }
45
51
 
52
+ const getReasons = (
53
+ moduleData: StatsModule,
54
+ ): Array<WebpackStatsFilteredModuleReason> | undefined => {
55
+ const reasonsByModule: Record<string, WebpackStatsFilteredModuleReason> = {};
56
+
57
+ moduleData.reasons?.forEach((reason) => {
58
+ // Add the reason module only once
59
+ // webpack adds one entry for import and one entry for every reference
60
+ if (reason.module && !reasonsByModule[reason.module]) {
61
+ reasonsByModule[reason.module] = { module: reason.module };
62
+ }
63
+ });
64
+
65
+ const reasons = Object.values(reasonsByModule);
66
+
67
+ if (reasons.length === 0) {
68
+ return undefined;
69
+ }
70
+
71
+ return reasons;
72
+ };
73
+
46
74
  /**
47
75
  * Filter webpack stats data
48
76
  */
@@ -107,9 +135,12 @@ export default (
107
135
  return aggConcatenatedModules;
108
136
  }
109
137
 
138
+ const reasons = getReasons(concatenatedModule);
139
+
110
140
  aggConcatenatedModules.push({
111
141
  name: concatenatedModule.name,
112
142
  size: concatenatedModule.size,
143
+ ...(reasons && { reasons }),
113
144
  });
114
145
 
115
146
  return aggConcatenatedModules;
@@ -117,11 +148,14 @@ export default (
117
148
  [] as Array<WebpackStatsFilteredConcatenatedModule>,
118
149
  );
119
150
 
151
+ const reasons = getReasons(moduleStats);
152
+
120
153
  agg.push({
121
154
  name: moduleStats.name,
122
155
  size: moduleStats.size,
123
156
  chunks: moduleChunks,
124
157
  ...(concatenatedModules && { modules: concatenatedModules }),
158
+ ...(reasons && { reasons }),
125
159
  });
126
160
 
127
161
  return agg;
package/types/index.d.ts CHANGED
@@ -13,14 +13,19 @@ export interface WebpackStatsFilteredChunk {
13
13
  files?: Array<string>;
14
14
  names?: Array<string>;
15
15
  }
16
+ export interface WebpackStatsFilteredModuleReason {
17
+ module: string;
18
+ }
16
19
  export interface WebpackStatsFilteredModule {
17
20
  name: string;
18
21
  size?: number;
19
22
  chunks: Array<string | number>;
23
+ reasons?: Array<WebpackStatsFilteredModuleReason>;
20
24
  }
21
25
  export interface WebpackStatsFilteredConcatenatedModule {
22
26
  name: string;
23
27
  size?: number;
28
+ reasons?: Array<WebpackStatsFilteredModuleReason>;
24
29
  }
25
30
  export interface WebpackStatsFilteredRootModule extends WebpackStatsFilteredModule {
26
31
  modules?: Array<WebpackStatsFilteredConcatenatedModule>;