shaka-bundle-size 0.0.11 → 0.0.12

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 (68) hide show
  1. package/dist/SourceMapGenerator.d.ts.map +1 -1
  2. package/dist/SourceMapGenerator.js +3 -1
  3. package/dist/SourceMapGenerator.js.map +1 -1
  4. package/dist/WebpackStatsReader.js +1 -1
  5. package/dist/WebpackStatsReader.js.map +1 -1
  6. package/dist/__tests__/BaselineComparator.test.d.ts +2 -0
  7. package/dist/__tests__/BaselineComparator.test.d.ts.map +1 -0
  8. package/dist/__tests__/BaselineComparator.test.js +269 -0
  9. package/dist/__tests__/BaselineComparator.test.js.map +1 -0
  10. package/dist/__tests__/BaselineStorage.test.d.ts +2 -0
  11. package/dist/__tests__/BaselineStorage.test.d.ts.map +1 -0
  12. package/dist/__tests__/BaselineStorage.test.js +145 -0
  13. package/dist/__tests__/BaselineStorage.test.js.map +1 -0
  14. package/dist/__tests__/BaselineWriter.test.d.ts +2 -0
  15. package/dist/__tests__/BaselineWriter.test.d.ts.map +1 -0
  16. package/dist/__tests__/BaselineWriter.test.js +169 -0
  17. package/dist/__tests__/BaselineWriter.test.js.map +1 -0
  18. package/dist/__tests__/BundleSizeChecker.test.d.ts +2 -0
  19. package/dist/__tests__/BundleSizeChecker.test.d.ts.map +1 -0
  20. package/dist/__tests__/BundleSizeChecker.test.js +276 -0
  21. package/dist/__tests__/BundleSizeChecker.test.js.map +1 -0
  22. package/dist/__tests__/ExtendedStatsGenerator.test.d.ts +2 -0
  23. package/dist/__tests__/ExtendedStatsGenerator.test.d.ts.map +1 -0
  24. package/dist/__tests__/ExtendedStatsGenerator.test.js +118 -0
  25. package/dist/__tests__/ExtendedStatsGenerator.test.js.map +1 -0
  26. package/dist/__tests__/HtmlDiffGenerator.test.d.ts +2 -0
  27. package/dist/__tests__/HtmlDiffGenerator.test.d.ts.map +1 -0
  28. package/dist/__tests__/HtmlDiffGenerator.test.js +283 -0
  29. package/dist/__tests__/HtmlDiffGenerator.test.js.map +1 -0
  30. package/dist/__tests__/RegressionDetector.test.d.ts +2 -0
  31. package/dist/__tests__/RegressionDetector.test.d.ts.map +1 -0
  32. package/dist/__tests__/RegressionDetector.test.js +227 -0
  33. package/dist/__tests__/RegressionDetector.test.js.map +1 -0
  34. package/dist/__tests__/Reporter.test.d.ts +2 -0
  35. package/dist/__tests__/Reporter.test.d.ts.map +1 -0
  36. package/dist/__tests__/Reporter.test.js +359 -0
  37. package/dist/__tests__/Reporter.test.js.map +1 -0
  38. package/dist/__tests__/SizeCalculator.test.d.ts +2 -0
  39. package/dist/__tests__/SizeCalculator.test.d.ts.map +1 -0
  40. package/dist/__tests__/SizeCalculator.test.js +172 -0
  41. package/dist/__tests__/SizeCalculator.test.js.map +1 -0
  42. package/dist/__tests__/SourceMapGenerator.test.d.ts +2 -0
  43. package/dist/__tests__/SourceMapGenerator.test.d.ts.map +1 -0
  44. package/dist/__tests__/SourceMapGenerator.test.js +242 -0
  45. package/dist/__tests__/SourceMapGenerator.test.js.map +1 -0
  46. package/dist/__tests__/WebpackStatsReader.test.d.ts +2 -0
  47. package/dist/__tests__/WebpackStatsReader.test.d.ts.map +1 -0
  48. package/dist/__tests__/WebpackStatsReader.test.js +210 -0
  49. package/dist/__tests__/WebpackStatsReader.test.js.map +1 -0
  50. package/dist/__tests__/colors.test.d.ts +2 -0
  51. package/dist/__tests__/colors.test.d.ts.map +1 -0
  52. package/dist/__tests__/colors.test.js +54 -0
  53. package/dist/__tests__/colors.test.js.map +1 -0
  54. package/dist/__tests__/config.test.d.ts +2 -0
  55. package/dist/__tests__/config.test.d.ts.map +1 -0
  56. package/dist/__tests__/config.test.js +380 -0
  57. package/dist/__tests__/config.test.js.map +1 -0
  58. package/dist/cli.js +25 -14
  59. package/dist/cli.js.map +1 -1
  60. package/dist/config.d.ts +197 -34
  61. package/dist/config.d.ts.map +1 -1
  62. package/dist/config.js +90 -18
  63. package/dist/config.js.map +1 -1
  64. package/dist/index.d.ts +1 -1
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +6 -1
  67. package/dist/index.js.map +1 -1
  68. package/package.json +7 -2
@@ -0,0 +1,359 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const stream_1 = require("stream");
4
+ const Reporter_1 = require("../Reporter");
5
+ const types_1 = require("../types");
6
+ function createOutputStream() {
7
+ let output = '';
8
+ const stream = new stream_1.Writable({
9
+ write(chunk, _encoding, callback) {
10
+ output += chunk.toString();
11
+ callback();
12
+ },
13
+ });
14
+ return { stream, getOutput: () => output };
15
+ }
16
+ describe('Reporter', () => {
17
+ describe('constructor', () => {
18
+ it('defaults to normal verbosity with colors', () => {
19
+ const { stream } = createOutputStream();
20
+ const reporter = new Reporter_1.Reporter({ output: stream });
21
+ reporter.info('test');
22
+ // Should produce output in normal mode
23
+ });
24
+ });
25
+ describe('color', () => {
26
+ it('applies color when colors enabled', () => {
27
+ const { stream } = createOutputStream();
28
+ const reporter = new Reporter_1.Reporter({ output: stream, colors: true });
29
+ expect(reporter.color('text', 'red')).toContain(Reporter_1.ANSI.RED);
30
+ });
31
+ it('returns plain text when colors disabled', () => {
32
+ const { stream } = createOutputStream();
33
+ const reporter = new Reporter_1.Reporter({ output: stream, colors: false });
34
+ expect(reporter.color('text', 'red')).toBe('text');
35
+ });
36
+ });
37
+ describe('info', () => {
38
+ it('outputs message in normal mode', () => {
39
+ const { stream, getOutput } = createOutputStream();
40
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'normal' });
41
+ reporter.info('hello');
42
+ expect(getOutput()).toContain('hello');
43
+ });
44
+ it('suppresses output in quiet mode', () => {
45
+ const { stream, getOutput } = createOutputStream();
46
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'quiet' });
47
+ reporter.info('hello');
48
+ expect(getOutput()).toBe('');
49
+ });
50
+ });
51
+ describe('success', () => {
52
+ it('outputs green message in normal mode', () => {
53
+ const { stream, getOutput } = createOutputStream();
54
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'normal' });
55
+ reporter.success('passed');
56
+ expect(getOutput()).toContain('passed');
57
+ expect(getOutput()).toContain(Reporter_1.ANSI.GREEN);
58
+ });
59
+ it('suppresses output in quiet mode', () => {
60
+ const { stream, getOutput } = createOutputStream();
61
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'quiet' });
62
+ reporter.success('passed');
63
+ expect(getOutput()).toBe('');
64
+ });
65
+ });
66
+ describe('warning', () => {
67
+ it('outputs yellow message even in quiet mode', () => {
68
+ const { stream, getOutput } = createOutputStream();
69
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'quiet' });
70
+ reporter.warning('warn!');
71
+ expect(getOutput()).toContain('warn!');
72
+ });
73
+ });
74
+ describe('error', () => {
75
+ it('outputs red message', () => {
76
+ const { stream, getOutput } = createOutputStream();
77
+ const reporter = new Reporter_1.Reporter({ output: stream });
78
+ reporter.error('fail');
79
+ expect(getOutput()).toContain('fail');
80
+ expect(getOutput()).toContain(Reporter_1.ANSI.RED);
81
+ });
82
+ });
83
+ describe('header', () => {
84
+ it('outputs title with separators in normal mode', () => {
85
+ const { stream, getOutput } = createOutputStream();
86
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'normal' });
87
+ reporter.header('My Section');
88
+ const output = getOutput();
89
+ expect(output).toContain('My Section');
90
+ expect(output).toContain('='.repeat(80));
91
+ });
92
+ it('suppresses output in quiet mode', () => {
93
+ const { stream, getOutput } = createOutputStream();
94
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'quiet' });
95
+ reporter.header('My Section');
96
+ expect(getOutput()).toBe('');
97
+ });
98
+ });
99
+ describe('verbose', () => {
100
+ it('outputs message only in verbose mode', () => {
101
+ const { stream, getOutput } = createOutputStream();
102
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'verbose' });
103
+ reporter.verbose('debug info');
104
+ expect(getOutput()).toContain('debug info');
105
+ });
106
+ it('suppresses output in normal mode', () => {
107
+ const { stream, getOutput } = createOutputStream();
108
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'normal' });
109
+ reporter.verbose('debug info');
110
+ expect(getOutput()).toBe('');
111
+ });
112
+ it('suppresses output in quiet mode', () => {
113
+ const { stream, getOutput } = createOutputStream();
114
+ const reporter = new Reporter_1.Reporter({ output: stream, verbosity: 'quiet' });
115
+ reporter.verbose('debug info');
116
+ expect(getOutput()).toBe('');
117
+ });
118
+ });
119
+ describe('reportSizeIncrease', () => {
120
+ it('reports size increase with formatted values', () => {
121
+ const { stream, getOutput } = createOutputStream();
122
+ const reporter = new Reporter_1.Reporter({ output: stream });
123
+ reporter.reportSizeIncrease({
124
+ componentName: 'Header',
125
+ sizeDiffKb: 5.123,
126
+ actualSizeKb: 105.456,
127
+ expectedSizeKb: 100.333,
128
+ });
129
+ const output = getOutput();
130
+ expect(output).toContain('Header');
131
+ expect(output).toContain('5.12');
132
+ expect(output).toContain('105.456');
133
+ });
134
+ });
135
+ describe('reportSizeDecrease', () => {
136
+ it('reports size decrease with formatted values', () => {
137
+ const { stream, getOutput } = createOutputStream();
138
+ const reporter = new Reporter_1.Reporter({ output: stream });
139
+ reporter.reportSizeDecrease({
140
+ componentName: 'Footer',
141
+ sizeDiffKb: 3.567,
142
+ actualSizeKb: 96.789,
143
+ expectedSizeKb: 100.356,
144
+ });
145
+ const output = getOutput();
146
+ expect(output).toContain('Footer');
147
+ expect(output).toContain('reduced');
148
+ expect(output).toContain('3.57');
149
+ });
150
+ });
151
+ describe('reportNewComponent', () => {
152
+ it('reports a new named component', () => {
153
+ const { stream, getOutput } = createOutputStream();
154
+ const reporter = new Reporter_1.Reporter({ output: stream });
155
+ reporter.reportNewComponent({
156
+ componentName: 'NewWidget',
157
+ sizeKb: 25.5,
158
+ chunksCount: 3,
159
+ });
160
+ const output = getOutput();
161
+ expect(output).toContain('NewWidget');
162
+ expect(output).toContain('25.50');
163
+ });
164
+ it('reports uncategorized chunks differently', () => {
165
+ const { stream, getOutput } = createOutputStream();
166
+ const reporter = new Reporter_1.Reporter({ output: stream });
167
+ reporter.reportNewComponent({
168
+ componentName: 'uncategorized chunks',
169
+ sizeKb: 10.0,
170
+ chunksCount: 5,
171
+ });
172
+ const output = getOutput();
173
+ expect(output).toContain('uncategorized');
174
+ expect(output).toContain('5');
175
+ });
176
+ it('uses singular chunk for count of 1', () => {
177
+ const { stream, getOutput } = createOutputStream();
178
+ const reporter = new Reporter_1.Reporter({ output: stream });
179
+ reporter.reportNewComponent({
180
+ componentName: 'uncategorized chunks',
181
+ sizeKb: 10.0,
182
+ chunksCount: 1,
183
+ });
184
+ const output = getOutput();
185
+ expect(output).toContain('1 uncategorized chunk ');
186
+ });
187
+ });
188
+ describe('reportRemovedComponent', () => {
189
+ it('reports a removed named component', () => {
190
+ const { stream, getOutput } = createOutputStream();
191
+ const reporter = new Reporter_1.Reporter({ output: stream });
192
+ reporter.reportRemovedComponent({
193
+ componentName: 'OldWidget',
194
+ sizeKb: '50.00',
195
+ });
196
+ const output = getOutput();
197
+ expect(output).toContain('OldWidget');
198
+ expect(output).toContain('50.00');
199
+ });
200
+ it('reports uncategorized chunks differently', () => {
201
+ const { stream, getOutput } = createOutputStream();
202
+ const reporter = new Reporter_1.Reporter({ output: stream });
203
+ reporter.reportRemovedComponent({
204
+ componentName: 'uncategorized chunks',
205
+ sizeKb: '10.00',
206
+ });
207
+ const output = getOutput();
208
+ expect(output).toContain('removed all uncategorized chunks');
209
+ });
210
+ });
211
+ describe('reportIncreasedChunksCount', () => {
212
+ it('reports chunks count increase', () => {
213
+ const { stream, getOutput } = createOutputStream();
214
+ const reporter = new Reporter_1.Reporter({ output: stream });
215
+ reporter.reportIncreasedChunksCount({
216
+ componentName: 'App',
217
+ actualCount: 5,
218
+ expectedCount: 3,
219
+ });
220
+ const output = getOutput();
221
+ expect(output).toContain('App');
222
+ expect(output).toContain('5');
223
+ expect(output).toContain('3');
224
+ });
225
+ });
226
+ describe('reportPassed', () => {
227
+ it('outputs passing message', () => {
228
+ const { stream, getOutput } = createOutputStream();
229
+ const reporter = new Reporter_1.Reporter({ output: stream });
230
+ reporter.reportPassed();
231
+ expect(getOutput()).toContain('within the expected size');
232
+ });
233
+ });
234
+ describe('summary', () => {
235
+ it('outputs success message when passed', () => {
236
+ const { stream, getOutput } = createOutputStream();
237
+ const reporter = new Reporter_1.Reporter({ output: stream });
238
+ const result = {
239
+ passed: true,
240
+ regressions: [],
241
+ warnings: [],
242
+ actualSizes: [],
243
+ expectedSizes: [],
244
+ };
245
+ reporter.summary(result);
246
+ expect(getOutput()).toContain('passed');
247
+ });
248
+ it('outputs failure message with regressions', () => {
249
+ const { stream, getOutput } = createOutputStream();
250
+ const reporter = new Reporter_1.Reporter({ output: stream });
251
+ const result = {
252
+ passed: false,
253
+ regressions: [
254
+ {
255
+ componentName: 'App',
256
+ type: types_1.RegressionType.INCREASED_SIZE,
257
+ policyMessage: 'Size too big',
258
+ },
259
+ ],
260
+ warnings: [],
261
+ actualSizes: [],
262
+ expectedSizes: [],
263
+ };
264
+ reporter.summary(result);
265
+ const output = getOutput();
266
+ expect(output).toContain('failed');
267
+ expect(output).toContain('1 regression');
268
+ expect(output).toContain('App');
269
+ });
270
+ it('outputs warnings when present', () => {
271
+ const { stream, getOutput } = createOutputStream();
272
+ const reporter = new Reporter_1.Reporter({ output: stream });
273
+ const result = {
274
+ passed: true,
275
+ regressions: [],
276
+ warnings: [
277
+ {
278
+ componentName: 'Footer',
279
+ type: types_1.RegressionType.INCREASED_SIZE,
280
+ policyMessage: 'Small increase',
281
+ },
282
+ ],
283
+ actualSizes: [],
284
+ expectedSizes: [],
285
+ };
286
+ reporter.summary(result);
287
+ const output = getOutput();
288
+ expect(output).toContain('do not fail');
289
+ expect(output).toContain('Footer');
290
+ });
291
+ });
292
+ });
293
+ describe('SilentReporter', () => {
294
+ let consoleSpy;
295
+ let stdoutSpy;
296
+ beforeEach(() => {
297
+ consoleSpy = jest.spyOn(console, 'log').mockImplementation();
298
+ stdoutSpy = jest.spyOn(process.stdout, 'write').mockImplementation(() => true);
299
+ });
300
+ afterEach(() => {
301
+ consoleSpy.mockRestore();
302
+ stdoutSpy.mockRestore();
303
+ });
304
+ it('produces no output for info', () => {
305
+ const reporter = new Reporter_1.SilentReporter();
306
+ reporter.info('test');
307
+ expect(consoleSpy).not.toHaveBeenCalled();
308
+ expect(stdoutSpy).not.toHaveBeenCalled();
309
+ });
310
+ it('produces no output for success', () => {
311
+ const reporter = new Reporter_1.SilentReporter();
312
+ reporter.success('test');
313
+ expect(consoleSpy).not.toHaveBeenCalled();
314
+ expect(stdoutSpy).not.toHaveBeenCalled();
315
+ });
316
+ it('produces no output for warning', () => {
317
+ const reporter = new Reporter_1.SilentReporter();
318
+ reporter.warning('test');
319
+ expect(consoleSpy).not.toHaveBeenCalled();
320
+ expect(stdoutSpy).not.toHaveBeenCalled();
321
+ });
322
+ it('produces no output for error', () => {
323
+ const reporter = new Reporter_1.SilentReporter();
324
+ reporter.error('test');
325
+ expect(consoleSpy).not.toHaveBeenCalled();
326
+ expect(stdoutSpy).not.toHaveBeenCalled();
327
+ });
328
+ it('produces no output for header', () => {
329
+ const reporter = new Reporter_1.SilentReporter();
330
+ reporter.header('test');
331
+ expect(consoleSpy).not.toHaveBeenCalled();
332
+ expect(stdoutSpy).not.toHaveBeenCalled();
333
+ });
334
+ it('produces no output for verbose', () => {
335
+ const reporter = new Reporter_1.SilentReporter();
336
+ reporter.verbose('test');
337
+ expect(consoleSpy).not.toHaveBeenCalled();
338
+ expect(stdoutSpy).not.toHaveBeenCalled();
339
+ });
340
+ it('produces no output for summary', () => {
341
+ const reporter = new Reporter_1.SilentReporter();
342
+ reporter.summary({
343
+ passed: true,
344
+ regressions: [],
345
+ warnings: [],
346
+ actualSizes: [],
347
+ expectedSizes: [],
348
+ });
349
+ expect(consoleSpy).not.toHaveBeenCalled();
350
+ expect(stdoutSpy).not.toHaveBeenCalled();
351
+ });
352
+ it('produces no output for reportPassed', () => {
353
+ const reporter = new Reporter_1.SilentReporter();
354
+ reporter.reportPassed();
355
+ expect(consoleSpy).not.toHaveBeenCalled();
356
+ expect(stdoutSpy).not.toHaveBeenCalled();
357
+ });
358
+ });
359
+ //# sourceMappingURL=Reporter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reporter.test.js","sourceRoot":"","sources":["../../src/__tests__/Reporter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SizeCalculator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SizeCalculator.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/SizeCalculator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fs = __importStar(require("fs"));
37
+ const path = __importStar(require("path"));
38
+ const SizeCalculator_1 = require("../SizeCalculator");
39
+ describe('SizeCalculator', () => {
40
+ const tmpDir = path.join(__dirname, 'tmp-size-calculator');
41
+ beforeEach(() => {
42
+ if (!fs.existsSync(tmpDir)) {
43
+ fs.mkdirSync(tmpDir, { recursive: true });
44
+ }
45
+ });
46
+ afterEach(() => {
47
+ if (fs.existsSync(tmpDir)) {
48
+ fs.rmSync(tmpDir, { recursive: true });
49
+ }
50
+ });
51
+ function createFile(filename, sizeBytes) {
52
+ const buffer = Buffer.alloc(sizeBytes, 'x');
53
+ fs.writeFileSync(path.join(tmpDir, filename), buffer);
54
+ }
55
+ describe('getFileSize', () => {
56
+ it('returns file size in bytes', () => {
57
+ createFile('test.js.gz', 1024);
58
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
59
+ expect(calc.getFileSize(path.join(tmpDir, 'test.js.gz'))).toBe(1024);
60
+ });
61
+ it('returns 0 for non-existent file', () => {
62
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
63
+ expect(calc.getFileSize(path.join(tmpDir, 'nonexistent.gz'))).toBe(0);
64
+ });
65
+ it('invokes onMissingFile callback for non-existent file', () => {
66
+ const missingFiles = [];
67
+ const calc = new SizeCalculator_1.SizeCalculator({
68
+ bundlesDir: tmpDir,
69
+ onMissingFile: (filePath) => missingFiles.push(filePath),
70
+ });
71
+ calc.getFileSize(path.join(tmpDir, 'missing.gz'));
72
+ expect(missingFiles).toHaveLength(1);
73
+ expect(missingFiles[0]).toContain('missing.gz');
74
+ });
75
+ it('does not invoke onMissingFile for existing file', () => {
76
+ createFile('exists.gz', 100);
77
+ const missingFiles = [];
78
+ const calc = new SizeCalculator_1.SizeCalculator({
79
+ bundlesDir: tmpDir,
80
+ onMissingFile: (filePath) => missingFiles.push(filePath),
81
+ });
82
+ calc.getFileSize(path.join(tmpDir, 'exists.gz'));
83
+ expect(missingFiles).toHaveLength(0);
84
+ });
85
+ });
86
+ describe('getBundlePath', () => {
87
+ it('joins bundlesDir with filename', () => {
88
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: '/some/dir' });
89
+ expect(calc.getBundlePath('app.js')).toBe(path.join('/some/dir', 'app.js'));
90
+ });
91
+ });
92
+ describe('getChunkSizes', () => {
93
+ it('returns gzip and brotli sizes', () => {
94
+ createFile('app.js.gz', 2048);
95
+ createFile('app.js.br', 1536);
96
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
97
+ const sizes = calc.getChunkSizes('app.js');
98
+ expect(sizes.gzip).toBe(2048);
99
+ expect(sizes.brotli).toBe(1536);
100
+ });
101
+ it('returns 0 for missing compressed files', () => {
102
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
103
+ const sizes = calc.getChunkSizes('missing.js');
104
+ expect(sizes.gzip).toBe(0);
105
+ expect(sizes.brotli).toBe(0);
106
+ });
107
+ it('caches results', () => {
108
+ createFile('cached.js.gz', 500);
109
+ createFile('cached.js.br', 400);
110
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
111
+ const first = calc.getChunkSizes('cached.js');
112
+ // Delete files to prove caching
113
+ fs.unlinkSync(path.join(tmpDir, 'cached.js.gz'));
114
+ fs.unlinkSync(path.join(tmpDir, 'cached.js.br'));
115
+ const second = calc.getChunkSizes('cached.js');
116
+ expect(first).toEqual(second);
117
+ expect(first.gzip).toBe(500);
118
+ });
119
+ });
120
+ describe('bytesToKb', () => {
121
+ it('converts bytes to kilobytes', () => {
122
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
123
+ expect(calc.bytesToKb(1024)).toBe(1);
124
+ expect(calc.bytesToKb(2048)).toBe(2);
125
+ expect(calc.bytesToKb(512)).toBe(0.5);
126
+ expect(calc.bytesToKb(0)).toBe(0);
127
+ });
128
+ });
129
+ describe('calculateTotalSizes', () => {
130
+ it('sums sizes across multiple chunks', () => {
131
+ createFile('chunk1.js.gz', 1024);
132
+ createFile('chunk1.js.br', 768);
133
+ createFile('chunk2.js.gz', 2048);
134
+ createFile('chunk2.js.br', 1536);
135
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
136
+ const totals = calc.calculateTotalSizes(['chunk1.js', 'chunk2.js']);
137
+ expect(totals.gzipSizeKb).toBe(3); // (1024 + 2048) / 1024
138
+ expect(totals.brotliSizeKb).toBe(2.25); // (768 + 1536) / 1024
139
+ });
140
+ it('returns zeros for empty array', () => {
141
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
142
+ const totals = calc.calculateTotalSizes([]);
143
+ expect(totals.gzipSizeKb).toBe(0);
144
+ expect(totals.brotliSizeKb).toBe(0);
145
+ });
146
+ it('handles missing files gracefully', () => {
147
+ createFile('exists.js.gz', 1024);
148
+ createFile('exists.js.br', 512);
149
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
150
+ const totals = calc.calculateTotalSizes(['exists.js', 'missing.js']);
151
+ expect(totals.gzipSizeKb).toBe(1); // only the existing file
152
+ expect(totals.brotliSizeKb).toBe(0.5);
153
+ });
154
+ });
155
+ describe('clearCache', () => {
156
+ it('clears cached sizes', () => {
157
+ createFile('clearable.js.gz', 100);
158
+ createFile('clearable.js.br', 80);
159
+ const calc = new SizeCalculator_1.SizeCalculator({ bundlesDir: tmpDir });
160
+ calc.getChunkSizes('clearable.js');
161
+ // Update files
162
+ createFile('clearable.js.gz', 200);
163
+ createFile('clearable.js.br', 160);
164
+ // Before clear, should return cached values
165
+ expect(calc.getChunkSizes('clearable.js').gzip).toBe(100);
166
+ calc.clearCache();
167
+ // After clear, should return new values
168
+ expect(calc.getChunkSizes('clearable.js').gzip).toBe(200);
169
+ });
170
+ });
171
+ });
172
+ //# sourceMappingURL=SizeCalculator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SizeCalculator.test.js","sourceRoot":"","sources":["../../src/__tests__/SizeCalculator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SourceMapGenerator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceMapGenerator.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/SourceMapGenerator.test.ts"],"names":[],"mappings":""}