rollup-plugin-stats 1.5.0 → 1.5.1-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.
Files changed (43) hide show
  1. package/{dist/extract.cjs → lib/cjs/extract.js} +8 -42
  2. package/lib/cjs/extract.js.map +1 -0
  3. package/lib/cjs/index.js +41 -0
  4. package/lib/cjs/index.js.map +1 -0
  5. package/lib/cjs/package.json +1 -0
  6. package/lib/cjs/utils/check-exclude-filepath.js +30 -0
  7. package/lib/cjs/utils/check-exclude-filepath.js.map +1 -0
  8. package/lib/cjs/utils/format-file-size.js +37 -0
  9. package/lib/cjs/utils/format-file-size.js.map +1 -0
  10. package/lib/cjs/utils/omit.js +15 -0
  11. package/lib/cjs/utils/omit.js.map +1 -0
  12. package/lib/cjs/utils/round.js +9 -0
  13. package/lib/cjs/utils/round.js.map +1 -0
  14. package/lib/cjs/write.js +23 -0
  15. package/lib/cjs/write.js.map +1 -0
  16. package/{dist/extract.mjs → lib/esm/extract.js} +3 -37
  17. package/lib/esm/extract.js.map +1 -0
  18. package/{dist/index.mjs → lib/esm/index.js} +4 -50
  19. package/lib/esm/index.js.map +1 -0
  20. package/lib/esm/package.json +1 -0
  21. package/lib/esm/utils/check-exclude-filepath.js +28 -0
  22. package/lib/esm/utils/check-exclude-filepath.js.map +1 -0
  23. package/lib/esm/utils/format-file-size.js +35 -0
  24. package/lib/esm/utils/format-file-size.js.map +1 -0
  25. package/lib/esm/utils/omit.js +13 -0
  26. package/lib/esm/utils/omit.js.map +1 -0
  27. package/lib/esm/utils/round.js +7 -0
  28. package/lib/esm/utils/round.js.map +1 -0
  29. package/lib/esm/write.js +16 -0
  30. package/lib/esm/write.js.map +1 -0
  31. package/package.json +27 -22
  32. package/dist/extract.cjs.map +0 -1
  33. package/dist/extract.mjs.map +0 -1
  34. package/dist/index.cjs +0 -82
  35. package/dist/index.cjs.map +0 -1
  36. package/dist/index.mjs.map +0 -1
  37. /package/{dist → lib/types}/extract.d.ts +0 -0
  38. /package/{dist → lib/types}/index.d.ts +0 -0
  39. /package/{dist → lib/types}/utils/check-exclude-filepath.d.ts +0 -0
  40. /package/{dist → lib/types}/utils/format-file-size.d.ts +0 -0
  41. /package/{dist → lib/types}/utils/omit.d.ts +0 -0
  42. /package/{dist → lib/types}/utils/round.d.ts +0 -0
  43. /package/{dist → lib/types}/write.d.ts +0 -0
@@ -1,41 +1,7 @@
1
1
  'use strict';
2
2
 
3
- function omit(data, keys) {
4
- const result = {};
5
- const objectKeys = Object.keys(data);
6
- objectKeys.forEach((key) => {
7
- if (!keys.includes(key)) {
8
- result[key] = data[key];
9
- }
10
- });
11
- return result;
12
- }
13
-
14
- /**
15
- * Check if filepath should be excluded based on patterns
16
- */
17
- function checkExcludeFilepath(filepath, patterns) {
18
- if (!patterns) {
19
- return false;
20
- }
21
- if (Array.isArray(patterns)) {
22
- let res = false;
23
- for (let i = 0; i <= patterns.length - 1 && res === false; i++) {
24
- res = checkExcludeFilepath(filepath, patterns[i]);
25
- }
26
- return res;
27
- }
28
- if (typeof patterns === 'function') {
29
- return patterns(filepath);
30
- }
31
- if (typeof patterns === 'string') {
32
- return Boolean(filepath.match(patterns));
33
- }
34
- if ('test' in patterns) {
35
- return patterns.test(filepath);
36
- }
37
- return false;
38
- }
3
+ var omit = require('./utils/omit.js');
4
+ var checkExcludeFilepath = require('./utils/check-exclude-filepath.js');
39
5
 
40
6
  /**
41
7
  * Extract bundler stats
@@ -51,7 +17,7 @@ function extractRollupStats(bundle, options = {}) {
51
17
  const output = {};
52
18
  Object.entries(bundle).forEach(([bundleEntryFilepath, bundleEntryStats]) => {
53
19
  // Skip extraction if the entry filepath matches the exclude assets pattern
54
- if (checkExcludeFilepath(bundleEntryFilepath, excludeAssets)) {
20
+ if (checkExcludeFilepath.checkExcludeFilepath(bundleEntryFilepath, excludeAssets)) {
55
21
  return;
56
22
  }
57
23
  if (bundleEntryStats.type === "asset") {
@@ -60,7 +26,7 @@ function extractRollupStats(bundle, options = {}) {
60
26
  if (!source) {
61
27
  assetStatsOmitKeys.push('source');
62
28
  }
63
- output[bundleEntryFilepath] = omit(bundleEntryStats, assetStatsOmitKeys);
29
+ output[bundleEntryFilepath] = omit.omit(bundleEntryStats, assetStatsOmitKeys);
64
30
  return;
65
31
  }
66
32
  if (bundleEntryStats.type === "chunk") {
@@ -73,12 +39,12 @@ function extractRollupStats(bundle, options = {}) {
73
39
  if (!map) {
74
40
  chunkStatsOmitKeys.push('map');
75
41
  }
76
- const chunkStats = omit(bundleEntryStats, chunkStatsOmitKeys);
42
+ const chunkStats = omit.omit(bundleEntryStats, chunkStatsOmitKeys);
77
43
  // Extract chunk modules stats
78
44
  const chunkModulesStats = {};
79
45
  Object.entries(chunkStats.modules).forEach(([bundleModuleFilepath, bundleModuleStats]) => {
80
46
  // Skip module extraction if the filepath matches the exclude modules pattern
81
- if (checkExcludeFilepath(bundleModuleFilepath, excludeModules)) {
47
+ if (checkExcludeFilepath.checkExcludeFilepath(bundleModuleFilepath, excludeModules)) {
82
48
  return;
83
49
  }
84
50
  const moduleStatsOmitKeys = [];
@@ -86,7 +52,7 @@ function extractRollupStats(bundle, options = {}) {
86
52
  if (!source) {
87
53
  moduleStatsOmitKeys.push('code');
88
54
  }
89
- chunkModulesStats[bundleModuleFilepath] = omit(bundleModuleStats, moduleStatsOmitKeys);
55
+ chunkModulesStats[bundleModuleFilepath] = omit.omit(bundleModuleStats, moduleStatsOmitKeys);
90
56
  });
91
57
  chunkStats.modules = chunkModulesStats;
92
58
  output[bundleEntryFilepath] = chunkStats;
@@ -97,4 +63,4 @@ function extractRollupStats(bundle, options = {}) {
97
63
  }
98
64
 
99
65
  module.exports = extractRollupStats;
100
- //# sourceMappingURL=extract.cjs.map
66
+ //# sourceMappingURL=extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.js","sources":["../../../src/extract.ts"],"sourcesContent":[null],"names":["checkExcludeFilepath","omit"],"mappings":";;;;;AAgDA;;;;;;;;AAQG;AACW,SAAU,kBAAkB,CAAC,MAAoB,EAAE,UAAwB,EAAE,EAAA;AACzF,IAAA,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,OAAO;IAE9E,MAAM,MAAM,GAAU,EAAE;AAExB,IAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,KAAI;;AAEzE,QAAA,IAAIA,yCAAoB,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE;YAC5D;QACF;AAEA,QAAA,IAAI,gBAAgB,CAAC,IAAI,KAAK,OAAO,EAAE;YACrC,MAAM,kBAAkB,GAA8C,EAAE;;YAGxE,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnC;YAEA,MAAM,CAAC,mBAAmB,CAAC,GAAGC,SAAI,CAChC,gBAAgB,EAChB,kBAAkB,CACL;YAEf;QACF;AAEA,QAAA,IAAI,gBAAgB,CAAC,IAAI,KAAK,OAAO,EAAE;YACrC,MAAM,kBAAkB,GAA8C,EAAE;;YAGxE,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;YACjC;;YAGA,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC;YAEA,MAAM,UAAU,GAAGA,SAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAe;;YAI3E,MAAM,iBAAiB,GAA0B,EAAE;AAEnD,YAAA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,KAAI;;AAEvF,gBAAA,IAAID,yCAAoB,CAAC,oBAAoB,EAAE,cAAc,CAAC,EAAE;oBAC9D;gBACF;gBAEA,MAAM,mBAAmB,GAA+C,EAAE;;gBAG1E,IAAI,CAAC,MAAM,EAAE;AACX,oBAAA,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClC;gBAEA,iBAAiB,CAAC,oBAAoB,CAAC,GAAGC,SAAI,CAC5C,iBAAiB,EACjB,mBAAmB,CACL;AAClB,YAAA,CAAC,CAAC;AAEF,YAAA,UAAU,CAAC,OAAO,GAAG,iBAAiB;AAEtC,YAAA,MAAM,CAAC,mBAAmB,CAAC,GAAG,UAAU;YAExC;QACF;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf;;;;"}
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ var path = require('node:path');
4
+ var process = require('node:process');
5
+ var extract = require('./extract.js');
6
+ var write = require('./write.js');
7
+ var formatFileSize = require('./utils/format-file-size.js');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var path__default = /*#__PURE__*/_interopDefault(path);
12
+ var process__default = /*#__PURE__*/_interopDefault(process);
13
+
14
+ const PLUGIN_NAME = 'rollupStats';
15
+ const DEFAULT_FILE_NAME = 'stats.json';
16
+ function rollupStats(options = {}) {
17
+ return {
18
+ name: PLUGIN_NAME,
19
+ async generateBundle(context, bundle) {
20
+ const resolvedOptions = typeof options === 'function' ? options(context) : options;
21
+ const { fileName, stats: statsOptions, write: write$1 = write.rollupStatsWrite } = resolvedOptions || {};
22
+ const resolvedFileName = fileName || DEFAULT_FILE_NAME;
23
+ const filepath = path__default.default.isAbsolute(resolvedFileName)
24
+ ? resolvedFileName
25
+ : path__default.default.join(context.dir || process__default.default.cwd(), resolvedFileName);
26
+ const stats = extract(bundle, statsOptions);
27
+ try {
28
+ const res = await write$1(filepath, stats);
29
+ const outputSize = Buffer.byteLength(res.content, 'utf-8');
30
+ this.info(`Stats saved to ${res.filepath} (${formatFileSize.formatFileSize(outputSize)})`);
31
+ }
32
+ catch (error) { // eslint-disable-line
33
+ // Log error, but do not throw to allow the compilation to continue
34
+ this.warn(error);
35
+ }
36
+ },
37
+ };
38
+ }
39
+
40
+ module.exports = rollupStats;
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":["write","rollupStatsWrite","path","process","extractRollupStats","formatFileSize"],"mappings":";;;;;;;;;;;;;AAQA,MAAM,WAAW,GAAG,aAAa;AACjC,MAAM,iBAAiB,GAAG,YAAY;AAwBtC,SAAS,WAAW,CAAC,OAAA,GAA6C,EAAE,EAAA;IAClE,OAAO;AACL,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,EAAA;AAClC,YAAA,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;AAClF,YAAA,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,SAAEA,OAAK,GAAGC,sBAAgB,EAAE,GAAG,eAAe,IAAI,EAAE;AAEzF,YAAA,MAAM,gBAAgB,GAAG,QAAQ,IAAI,iBAAiB;AACtD,YAAA,MAAM,QAAQ,GAAGC,qBAAI,CAAC,UAAU,CAAC,gBAAgB;AAC/C,kBAAE;AACF,kBAAEA,qBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAIC,wBAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC;YAE7D,MAAM,KAAK,GAAGC,OAAkB,CAAC,MAAM,EAAE,YAAY,CAAC;AAEtD,YAAA,IAAI;gBACF,MAAM,GAAG,GAAG,MAAMJ,OAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;AACxC,gBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;AAE1D,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAA,eAAA,EAAkB,GAAG,CAAC,QAAQ,CAAA,EAAA,EAAKK,6BAAc,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC;YAC7E;AAAE,YAAA,OAAO,KAAU,EAAE;;AAEnB,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAClB;QACF,CAAC;KACe;AACpB;;;;"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Check if filepath should be excluded based on patterns
5
+ */
6
+ function checkExcludeFilepath(filepath, patterns) {
7
+ if (!patterns) {
8
+ return false;
9
+ }
10
+ if (Array.isArray(patterns)) {
11
+ let res = false;
12
+ for (let i = 0; i <= patterns.length - 1 && res === false; i++) {
13
+ res = checkExcludeFilepath(filepath, patterns[i]);
14
+ }
15
+ return res;
16
+ }
17
+ if (typeof patterns === 'function') {
18
+ return patterns(filepath);
19
+ }
20
+ if (typeof patterns === 'string') {
21
+ return Boolean(filepath.match(patterns));
22
+ }
23
+ if ('test' in patterns) {
24
+ return patterns.test(filepath);
25
+ }
26
+ return false;
27
+ }
28
+
29
+ exports.checkExcludeFilepath = checkExcludeFilepath;
30
+ //# sourceMappingURL=check-exclude-filepath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-exclude-filepath.js","sources":["../../../../src/utils/check-exclude-filepath.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;;AAEG;AACG,SAAU,oBAAoB,CAClC,QAAgB,EAChB,QAAkC,EAAA;IAElC,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,IAAI,GAAG,GAAG,KAAK;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9D,GAAG,GAAG,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnD;AAEA,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,QAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B;AAEA,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C;AAEA,IAAA,IAAI,MAAM,IAAI,QAAQ,EAAE;AACtB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChC;AAEA,IAAA,OAAO,KAAK;AACd;;;;"}
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+
3
+ var round = require('./round.js');
4
+
5
+ const FILE_SIZE = {
6
+ BYTE: {
7
+ symbol: 'B',
8
+ multiplier: 1,
9
+ },
10
+ KILO: {
11
+ symbol: 'KiB',
12
+ multiplier: 1024,
13
+ },
14
+ MEGA: {
15
+ symbol: 'MiB',
16
+ multiplier: 1024 * 1024,
17
+ },
18
+ };
19
+ function formatFileSize(value) {
20
+ let unit = FILE_SIZE.BYTE;
21
+ if (typeof value !== 'number') {
22
+ return `0${unit.symbol}`;
23
+ }
24
+ if (value < FILE_SIZE.KILO.multiplier) {
25
+ unit = FILE_SIZE.BYTE;
26
+ }
27
+ else if (value < FILE_SIZE.MEGA.multiplier) {
28
+ unit = FILE_SIZE.KILO;
29
+ }
30
+ else {
31
+ unit = FILE_SIZE.MEGA;
32
+ }
33
+ return `${round.round(value / unit.multiplier, 2)}${unit.symbol}`;
34
+ }
35
+
36
+ exports.formatFileSize = formatFileSize;
37
+ //# sourceMappingURL=format-file-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-file-size.js","sources":["../../../../src/utils/format-file-size.ts"],"sourcesContent":[null],"names":["round"],"mappings":";;;;AAEA,MAAM,SAAS,GAAG;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,UAAU,EAAE,CAAC;AACd,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,IAAI,GAAG,IAAI;AACxB,KAAA;CACF;AAEK,SAAU,cAAc,CAAC,KAAqB,EAAA;AAClD,IAAA,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI;AAEzB,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE;IAC1B;IAEA,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;AACrC,QAAA,IAAI,GAAG,SAAS,CAAC,IAAI;IACvB;SAAO,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5C,QAAA,IAAI,GAAG,SAAS,CAAC,IAAI;IACvB;SAAO;AACL,QAAA,IAAI,GAAG,SAAS,CAAC,IAAI;IACvB;AAEA,IAAA,OAAO,GAAGA,WAAK,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,EAAE;AAC7D;;;;"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ function omit(data, keys) {
4
+ const result = {};
5
+ const objectKeys = Object.keys(data);
6
+ objectKeys.forEach((key) => {
7
+ if (!keys.includes(key)) {
8
+ result[key] = data[key];
9
+ }
10
+ });
11
+ return result;
12
+ }
13
+
14
+ exports.omit = omit;
15
+ //# sourceMappingURL=omit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omit.js","sources":["../../../../src/utils/omit.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAM,SAAU,IAAI,CAClB,IAAO,EACP,IAAS,EAAA;IAET,MAAM,MAAM,GAAG,EAAO;IACtB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAa;AAEhD,IAAA,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;QACzB;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ function round(value, precision = 2) {
4
+ const multiplier = 10 ^ precision;
5
+ return Math.round(value * multiplier) / multiplier;
6
+ }
7
+
8
+ exports.round = round;
9
+ //# sourceMappingURL=round.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round.js","sources":["../../../../src/utils/round.ts"],"sourcesContent":[null],"names":[],"mappings":";;SAAgB,KAAK,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC,EAAA;AAChD,IAAA,MAAM,UAAU,GAAG,EAAE,GAAG,SAAS;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU;AACpD;;;;"}
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var path = require('node:path');
4
+ var fs = require('node:fs/promises');
5
+
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var path__default = /*#__PURE__*/_interopDefault(path);
9
+ var fs__default = /*#__PURE__*/_interopDefault(fs);
10
+
11
+ async function rollupStatsWrite(filepath, stats) {
12
+ const content = JSON.stringify(stats, null, 2);
13
+ // Create base directory if it does not exist
14
+ await fs__default.default.mkdir(path__default.default.dirname(filepath), { recursive: true });
15
+ await fs__default.default.writeFile(filepath, content);
16
+ return {
17
+ filepath,
18
+ content,
19
+ };
20
+ }
21
+
22
+ exports.rollupStatsWrite = rollupStatsWrite;
23
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sources":["../../../src/write.ts"],"sourcesContent":[null],"names":["fs","path"],"mappings":";;;;;;;;;;AAaO,eAAe,gBAAgB,CAEpC,QAAgB,EAAE,KAAQ,EAAA;AAC1B,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;AAG9C,IAAA,MAAMA,mBAAE,CAAC,KAAK,CAACC,qBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAE3D,MAAMD,mBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAErC,OAAO;QACL,QAAQ;QACR,OAAO;KACR;AACH;;;;"}
@@ -1,39 +1,5 @@
1
- function omit(data, keys) {
2
- const result = {};
3
- const objectKeys = Object.keys(data);
4
- objectKeys.forEach((key) => {
5
- if (!keys.includes(key)) {
6
- result[key] = data[key];
7
- }
8
- });
9
- return result;
10
- }
11
-
12
- /**
13
- * Check if filepath should be excluded based on patterns
14
- */
15
- function checkExcludeFilepath(filepath, patterns) {
16
- if (!patterns) {
17
- return false;
18
- }
19
- if (Array.isArray(patterns)) {
20
- let res = false;
21
- for (let i = 0; i <= patterns.length - 1 && res === false; i++) {
22
- res = checkExcludeFilepath(filepath, patterns[i]);
23
- }
24
- return res;
25
- }
26
- if (typeof patterns === 'function') {
27
- return patterns(filepath);
28
- }
29
- if (typeof patterns === 'string') {
30
- return Boolean(filepath.match(patterns));
31
- }
32
- if ('test' in patterns) {
33
- return patterns.test(filepath);
34
- }
35
- return false;
36
- }
1
+ import { omit } from './utils/omit.js';
2
+ import { checkExcludeFilepath } from './utils/check-exclude-filepath.js';
37
3
 
38
4
  /**
39
5
  * Extract bundler stats
@@ -95,4 +61,4 @@ function extractRollupStats(bundle, options = {}) {
95
61
  }
96
62
 
97
63
  export { extractRollupStats as default };
98
- //# sourceMappingURL=extract.mjs.map
64
+ //# sourceMappingURL=extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.js","sources":["../../../src/extract.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAgDA;;;;;;;;AAQG;AACW,SAAU,kBAAkB,CAAC,MAAoB,EAAE,UAAwB,EAAE,EAAA;AACzF,IAAA,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,OAAO;IAE9E,MAAM,MAAM,GAAU,EAAE;AAExB,IAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,KAAI;;AAEzE,QAAA,IAAI,oBAAoB,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE;YAC5D;QACF;AAEA,QAAA,IAAI,gBAAgB,CAAC,IAAI,KAAK,OAAO,EAAE;YACrC,MAAM,kBAAkB,GAA8C,EAAE;;YAGxE,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnC;YAEA,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAChC,gBAAgB,EAChB,kBAAkB,CACL;YAEf;QACF;AAEA,QAAA,IAAI,gBAAgB,CAAC,IAAI,KAAK,OAAO,EAAE;YACrC,MAAM,kBAAkB,GAA8C,EAAE;;YAGxE,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;YACjC;;YAGA,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC;YAEA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAe;;YAI3E,MAAM,iBAAiB,GAA0B,EAAE;AAEnD,YAAA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,KAAI;;AAEvF,gBAAA,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,cAAc,CAAC,EAAE;oBAC9D;gBACF;gBAEA,MAAM,mBAAmB,GAA+C,EAAE;;gBAG1E,IAAI,CAAC,MAAM,EAAE;AACX,oBAAA,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClC;gBAEA,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAC5C,iBAAiB,EACjB,mBAAmB,CACL;AAClB,YAAA,CAAC,CAAC;AAEF,YAAA,UAAU,CAAC,OAAO,GAAG,iBAAiB;AAEtC,YAAA,MAAM,CAAC,mBAAmB,CAAC,GAAG,UAAU;YAExC;QACF;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf;;;;"}
@@ -1,54 +1,8 @@
1
1
  import path from 'node:path';
2
2
  import process from 'node:process';
3
- import extractRollupStats from './extract.mjs';
4
- import fs from 'node:fs/promises';
5
-
6
- async function rollupStatsWrite(filepath, stats) {
7
- const content = JSON.stringify(stats, null, 2);
8
- // Create base directory if it does not exist
9
- await fs.mkdir(path.dirname(filepath), { recursive: true });
10
- await fs.writeFile(filepath, content);
11
- return {
12
- filepath,
13
- content,
14
- };
15
- }
16
-
17
- function round(value, precision = 2) {
18
- const multiplier = 10 ^ precision;
19
- return Math.round(value * multiplier) / multiplier;
20
- }
21
-
22
- const FILE_SIZE = {
23
- BYTE: {
24
- symbol: 'B',
25
- multiplier: 1,
26
- },
27
- KILO: {
28
- symbol: 'KiB',
29
- multiplier: 1024,
30
- },
31
- MEGA: {
32
- symbol: 'MiB',
33
- multiplier: 1024 * 1024,
34
- },
35
- };
36
- function formatFileSize(value) {
37
- let unit = FILE_SIZE.BYTE;
38
- if (typeof value !== 'number') {
39
- return `0${unit.symbol}`;
40
- }
41
- if (value < FILE_SIZE.KILO.multiplier) {
42
- unit = FILE_SIZE.BYTE;
43
- }
44
- else if (value < FILE_SIZE.MEGA.multiplier) {
45
- unit = FILE_SIZE.KILO;
46
- }
47
- else {
48
- unit = FILE_SIZE.MEGA;
49
- }
50
- return `${round(value / unit.multiplier, 2)}${unit.symbol}`;
51
- }
3
+ import extractRollupStats from './extract.js';
4
+ import { rollupStatsWrite } from './write.js';
5
+ import { formatFileSize } from './utils/format-file-size.js';
52
6
 
53
7
  const PLUGIN_NAME = 'rollupStats';
54
8
  const DEFAULT_FILE_NAME = 'stats.json';
@@ -77,4 +31,4 @@ function rollupStats(options = {}) {
77
31
  }
78
32
 
79
33
  export { rollupStats as default };
80
- //# sourceMappingURL=index.mjs.map
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQA,MAAM,WAAW,GAAG,aAAa;AACjC,MAAM,iBAAiB,GAAG,YAAY;AAwBtC,SAAS,WAAW,CAAC,OAAA,GAA6C,EAAE,EAAA;IAClE,OAAO;AACL,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,EAAA;AAClC,YAAA,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;AAClF,YAAA,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,GAAG,gBAAgB,EAAE,GAAG,eAAe,IAAI,EAAE;AAEzF,YAAA,MAAM,gBAAgB,GAAG,QAAQ,IAAI,iBAAiB;AACtD,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB;AAC/C,kBAAE;AACF,kBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC;YAE7D,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC;AAEtD,YAAA,IAAI;gBACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;AACxC,gBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;AAE1D,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAA,eAAA,EAAkB,GAAG,CAAC,QAAQ,CAAA,EAAA,EAAK,cAAc,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC;YAC7E;AAAE,YAAA,OAAO,KAAU,EAAE;;AAEnB,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAClB;QACF,CAAC;KACe;AACpB;;;;"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Check if filepath should be excluded based on patterns
3
+ */
4
+ function checkExcludeFilepath(filepath, patterns) {
5
+ if (!patterns) {
6
+ return false;
7
+ }
8
+ if (Array.isArray(patterns)) {
9
+ let res = false;
10
+ for (let i = 0; i <= patterns.length - 1 && res === false; i++) {
11
+ res = checkExcludeFilepath(filepath, patterns[i]);
12
+ }
13
+ return res;
14
+ }
15
+ if (typeof patterns === 'function') {
16
+ return patterns(filepath);
17
+ }
18
+ if (typeof patterns === 'string') {
19
+ return Boolean(filepath.match(patterns));
20
+ }
21
+ if ('test' in patterns) {
22
+ return patterns.test(filepath);
23
+ }
24
+ return false;
25
+ }
26
+
27
+ export { checkExcludeFilepath };
28
+ //# sourceMappingURL=check-exclude-filepath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-exclude-filepath.js","sources":["../../../../src/utils/check-exclude-filepath.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;AAEG;AACG,SAAU,oBAAoB,CAClC,QAAgB,EAChB,QAAkC,EAAA;IAElC,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,IAAI,GAAG,GAAG,KAAK;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9D,GAAG,GAAG,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnD;AAEA,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,QAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B;AAEA,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C;AAEA,IAAA,IAAI,MAAM,IAAI,QAAQ,EAAE;AACtB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChC;AAEA,IAAA,OAAO,KAAK;AACd;;;;"}
@@ -0,0 +1,35 @@
1
+ import { round } from './round.js';
2
+
3
+ const FILE_SIZE = {
4
+ BYTE: {
5
+ symbol: 'B',
6
+ multiplier: 1,
7
+ },
8
+ KILO: {
9
+ symbol: 'KiB',
10
+ multiplier: 1024,
11
+ },
12
+ MEGA: {
13
+ symbol: 'MiB',
14
+ multiplier: 1024 * 1024,
15
+ },
16
+ };
17
+ function formatFileSize(value) {
18
+ let unit = FILE_SIZE.BYTE;
19
+ if (typeof value !== 'number') {
20
+ return `0${unit.symbol}`;
21
+ }
22
+ if (value < FILE_SIZE.KILO.multiplier) {
23
+ unit = FILE_SIZE.BYTE;
24
+ }
25
+ else if (value < FILE_SIZE.MEGA.multiplier) {
26
+ unit = FILE_SIZE.KILO;
27
+ }
28
+ else {
29
+ unit = FILE_SIZE.MEGA;
30
+ }
31
+ return `${round(value / unit.multiplier, 2)}${unit.symbol}`;
32
+ }
33
+
34
+ export { formatFileSize };
35
+ //# sourceMappingURL=format-file-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-file-size.js","sources":["../../../../src/utils/format-file-size.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,SAAS,GAAG;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,UAAU,EAAE,CAAC;AACd,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,IAAI,GAAG,IAAI;AACxB,KAAA;CACF;AAEK,SAAU,cAAc,CAAC,KAAqB,EAAA;AAClD,IAAA,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI;AAEzB,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE;IAC1B;IAEA,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;AACrC,QAAA,IAAI,GAAG,SAAS,CAAC,IAAI;IACvB;SAAO,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5C,QAAA,IAAI,GAAG,SAAS,CAAC,IAAI;IACvB;SAAO;AACL,QAAA,IAAI,GAAG,SAAS,CAAC,IAAI;IACvB;AAEA,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,EAAE;AAC7D;;;;"}
@@ -0,0 +1,13 @@
1
+ function omit(data, keys) {
2
+ const result = {};
3
+ const objectKeys = Object.keys(data);
4
+ objectKeys.forEach((key) => {
5
+ if (!keys.includes(key)) {
6
+ result[key] = data[key];
7
+ }
8
+ });
9
+ return result;
10
+ }
11
+
12
+ export { omit };
13
+ //# sourceMappingURL=omit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omit.js","sources":["../../../../src/utils/omit.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAM,SAAU,IAAI,CAClB,IAAO,EACP,IAAS,EAAA;IAET,MAAM,MAAM,GAAG,EAAO;IACtB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAa;AAEhD,IAAA,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;QACzB;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf;;;;"}
@@ -0,0 +1,7 @@
1
+ function round(value, precision = 2) {
2
+ const multiplier = 10 ^ precision;
3
+ return Math.round(value * multiplier) / multiplier;
4
+ }
5
+
6
+ export { round };
7
+ //# sourceMappingURL=round.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round.js","sources":["../../../../src/utils/round.ts"],"sourcesContent":[null],"names":[],"mappings":"SAAgB,KAAK,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC,EAAA;AAChD,IAAA,MAAM,UAAU,GAAG,EAAE,GAAG,SAAS;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU;AACpD;;;;"}
@@ -0,0 +1,16 @@
1
+ import path from 'node:path';
2
+ import fs from 'node:fs/promises';
3
+
4
+ async function rollupStatsWrite(filepath, stats) {
5
+ const content = JSON.stringify(stats, null, 2);
6
+ // Create base directory if it does not exist
7
+ await fs.mkdir(path.dirname(filepath), { recursive: true });
8
+ await fs.writeFile(filepath, content);
9
+ return {
10
+ filepath,
11
+ content,
12
+ };
13
+ }
14
+
15
+ export { rollupStatsWrite };
16
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sources":["../../../src/write.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAaO,eAAe,gBAAgB,CAEpC,QAAgB,EAAE,KAAQ,EAAA;AAC1B,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;AAG9C,IAAA,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAE3D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAErC,OAAO;QACL,QAAQ;QACR,OAAO;KACR;AACH;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rollup-plugin-stats",
3
3
  "description": "Output Rollup stats",
4
- "version": "1.5.0",
4
+ "version": "1.5.1-beta.1",
5
5
  "license": "MIT",
6
6
  "private": false,
7
7
  "repository": {
@@ -24,36 +24,38 @@
24
24
  "stats",
25
25
  "bundle-stats"
26
26
  ],
27
- "main": "dist/index.cjs",
28
- "module": "dist/index.mjs",
29
- "typings": "dist/index.d.ts",
27
+ "main": "./lib/cjs/index.js",
28
+ "module": "./lib/esm/index.js",
29
+ "typings": "./lib/types/index.d.ts",
30
30
  "files": [
31
- "dist"
31
+ "lib"
32
32
  ],
33
33
  "exports": {
34
34
  ".": {
35
- "types": "./dist/index.d.ts",
36
- "import": "./dist/index.mjs",
37
- "require": "./dist/index.cjs"
35
+ "types": "./lib/types/index.d.ts",
36
+ "import": "./lib/esm/index.js",
37
+ "require": "./lib/cjs/index.js"
38
38
  },
39
39
  "./extract": {
40
- "types": "./dist/extract.d.ts",
41
- "import": "./dist/extract.mjs",
42
- "require": "./dist/extract.cjs"
40
+ "types": "./lib/types/extract.d.ts",
41
+ "import": "./lib/esm/extract.js",
42
+ "require": "./lib/cjs/extract.js"
43
43
  }
44
44
  },
45
45
  "engines": {
46
46
  "node": ">=18"
47
47
  },
48
48
  "scripts": {
49
- "build": "rollup -c rollup.config.mjs",
49
+ "build": "npm run clean && tsc && rollup -c && npm run build-lib-packages",
50
+ "build-lib-packages": "echo '{\"type\":\"commonjs\"}' > lib/cjs/package.json && echo '{\"type\":\"module\"}' > lib/esm/package.json",
51
+ "clean": "rimraf ./lib",
50
52
  "lint": "eslint .",
51
53
  "format": "prettier --write .",
52
54
  "test:unit": "vitest test/unit",
53
55
  "test:package": "npm run test:package:rolldown && npm run test:package:rollup && npm run test:package:vite",
54
- "test:package:rolldown": "vitest test/package/rolldown",
55
- "test:package:rollup": "vitest test/package/rollup",
56
- "test:package:vite": "vitest test/package/vite",
56
+ "test:package:rolldown": "cd test/package/rolldown && npm run test",
57
+ "test:package:rollup": "cd test/package/rollup && npm run test",
58
+ "test:package:vite": "cd test/package/vite && npm run test",
57
59
  "bump": "./scripts/bump.sh",
58
60
  "release": "./scripts/release.sh"
59
61
  },
@@ -63,22 +65,25 @@
63
65
  }
64
66
  },
65
67
  "devDependencies": {
66
- "@eslint/js": "9.32.0",
68
+ "@eslint/js": "9.34.0",
67
69
  "@release-it/conventional-changelog": "10.0.1",
68
- "@rollup/plugin-typescript": "12.1.4",
70
+ "@rollup/plugin-commonjs": "^28.0.6",
71
+ "@rollup/plugin-node-resolve": "^16.0.1",
72
+ "@rollup/plugin-typescript": "^12.1.4",
69
73
  "@tsconfig/node18": "18.2.4",
70
- "@types/node": "24.2.0",
74
+ "@types/node": "24.3.0",
71
75
  "deep-freeze-strict": "1.1.1",
72
76
  "dotenv": "17.2.1",
73
- "eslint": "9.32.0",
77
+ "eslint": "9.34.0",
74
78
  "globals": "16.3.0",
75
79
  "husky": "8.0.3",
76
- "memfs": "4.36.0",
80
+ "memfs": "4.38.2",
77
81
  "prettier": "3.6.2",
78
82
  "release-it": "19.0.4",
79
- "rollup": "4.46.2",
83
+ "rimraf": "6.0.1",
84
+ "rollup": "4.49.0",
80
85
  "typescript": "5.9.2",
81
- "typescript-eslint": "8.39.0",
86
+ "typescript-eslint": "8.41.0",
82
87
  "vitest": "3.2.4"
83
88
  },
84
89
  "peerDependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract.cjs","sources":["../src/utils/omit.ts","../src/utils/check-exclude-filepath.ts","../src/extract.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract.mjs","sources":["../src/utils/omit.ts","../src/utils/check-exclude-filepath.ts","../src/extract.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"AAAM,SAAU,IAAI,CAClB,IAAO,EACP,IAAS,EAAA;IAET,MAAM,MAAM,GAAG,EAAO;IACtB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAa;AAEhD,IAAA,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;QACzB;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf;;ACVA;;AAEG;AACG,SAAU,oBAAoB,CAClC,QAAgB,EAChB,QAAkC,EAAA;IAElC,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,IAAI,GAAG,GAAG,KAAK;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9D,GAAG,GAAG,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnD;AAEA,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,QAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B;AAEA,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C;AAEA,IAAA,IAAI,MAAM,IAAI,QAAQ,EAAE;AACtB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChC;AAEA,IAAA,OAAO,KAAK;AACd;;ACUA;;;;;;;;AAQG;AACW,SAAU,kBAAkB,CAAC,MAAoB,EAAE,UAAwB,EAAE,EAAA;AACzF,IAAA,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,OAAO;IAE9E,MAAM,MAAM,GAAU,EAAE;AAExB,IAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,KAAI;;AAEzE,QAAA,IAAI,oBAAoB,CAAC,mBAAmB,EAAE,aAAa,CAAC,EAAE;YAC5D;QACF;AAEA,QAAA,IAAI,gBAAgB,CAAC,IAAI,KAAK,OAAO,EAAE;YACrC,MAAM,kBAAkB,GAA8C,EAAE;;YAGxE,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnC;YAEA,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAChC,gBAAgB,EAChB,kBAAkB,CACL;YAEf;QACF;AAEA,QAAA,IAAI,gBAAgB,CAAC,IAAI,KAAK,OAAO,EAAE;YACrC,MAAM,kBAAkB,GAA8C,EAAE;;YAGxE,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;YACjC;;YAGA,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC;YAEA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAe;;YAI3E,MAAM,iBAAiB,GAA0B,EAAE;AAEnD,YAAA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,KAAI;;AAEvF,gBAAA,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,cAAc,CAAC,EAAE;oBAC9D;gBACF;gBAEA,MAAM,mBAAmB,GAA+C,EAAE;;gBAG1E,IAAI,CAAC,MAAM,EAAE;AACX,oBAAA,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClC;gBAEA,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAC5C,iBAAiB,EACjB,mBAAmB,CACL;AAClB,YAAA,CAAC,CAAC;AAEF,YAAA,UAAU,CAAC,OAAO,GAAG,iBAAiB;AAEtC,YAAA,MAAM,CAAC,mBAAmB,CAAC,GAAG,UAAU;YAExC;QACF;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf;;;;"}
package/dist/index.cjs DELETED
@@ -1,82 +0,0 @@
1
- 'use strict';
2
-
3
- var path = require('node:path');
4
- var process = require('node:process');
5
- var extract = require('./extract.cjs');
6
- var fs = require('node:fs/promises');
7
-
8
- async function rollupStatsWrite(filepath, stats) {
9
- const content = JSON.stringify(stats, null, 2);
10
- // Create base directory if it does not exist
11
- await fs.mkdir(path.dirname(filepath), { recursive: true });
12
- await fs.writeFile(filepath, content);
13
- return {
14
- filepath,
15
- content,
16
- };
17
- }
18
-
19
- function round(value, precision = 2) {
20
- const multiplier = 10 ^ precision;
21
- return Math.round(value * multiplier) / multiplier;
22
- }
23
-
24
- const FILE_SIZE = {
25
- BYTE: {
26
- symbol: 'B',
27
- multiplier: 1,
28
- },
29
- KILO: {
30
- symbol: 'KiB',
31
- multiplier: 1024,
32
- },
33
- MEGA: {
34
- symbol: 'MiB',
35
- multiplier: 1024 * 1024,
36
- },
37
- };
38
- function formatFileSize(value) {
39
- let unit = FILE_SIZE.BYTE;
40
- if (typeof value !== 'number') {
41
- return `0${unit.symbol}`;
42
- }
43
- if (value < FILE_SIZE.KILO.multiplier) {
44
- unit = FILE_SIZE.BYTE;
45
- }
46
- else if (value < FILE_SIZE.MEGA.multiplier) {
47
- unit = FILE_SIZE.KILO;
48
- }
49
- else {
50
- unit = FILE_SIZE.MEGA;
51
- }
52
- return `${round(value / unit.multiplier, 2)}${unit.symbol}`;
53
- }
54
-
55
- const PLUGIN_NAME = 'rollupStats';
56
- const DEFAULT_FILE_NAME = 'stats.json';
57
- function rollupStats(options = {}) {
58
- return {
59
- name: PLUGIN_NAME,
60
- async generateBundle(context, bundle) {
61
- const resolvedOptions = typeof options === 'function' ? options(context) : options;
62
- const { fileName, stats: statsOptions, write = rollupStatsWrite } = resolvedOptions || {};
63
- const resolvedFileName = fileName || DEFAULT_FILE_NAME;
64
- const filepath = path.isAbsolute(resolvedFileName)
65
- ? resolvedFileName
66
- : path.join(context.dir || process.cwd(), resolvedFileName);
67
- const stats = extract(bundle, statsOptions);
68
- try {
69
- const res = await write(filepath, stats);
70
- const outputSize = Buffer.byteLength(res.content, 'utf-8');
71
- this.info(`Stats saved to ${res.filepath} (${formatFileSize(outputSize)})`);
72
- }
73
- catch (error) { // eslint-disable-line
74
- // Log error, but do not throw to allow the compilation to continue
75
- this.warn(error);
76
- }
77
- },
78
- };
79
- }
80
-
81
- module.exports = rollupStats;
82
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/write.ts","../src/utils/round.ts","../src/utils/format-file-size.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":["extractRollupStats"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/write.ts","../src/utils/round.ts","../src/utils/format-file-size.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes