Skip to content

Commit 15b4055

Browse files
authored
Add --include-original flag (#5)
1 parent ecfbda9 commit 15b4055

File tree

4 files changed

+28
-5
lines changed

4 files changed

+28
-5
lines changed

cli.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,35 @@ const fs = require('fs');
44
const meow = require('meow');
55
const prettyBytes = require('pretty-bytes');
66
const gzipSize = require('gzip-size');
7+
const chalk = require('chalk');
78

89
const cli = meow(`
910
Usage
1011
$ gzip-size <file>
1112
$ cat <file> | gzip-size
1213
1314
Options
14-
--level Compression level [0-9] (Default: 9)
15-
--raw Display value in bytes
15+
--level Compression level [0-9] (Default: 9)
16+
--raw Display value in bytes
17+
--include-original Include original size
1618
1719
Examples
1820
$ gzip-size unicorn.png
1921
192 kB
2022
$ gzip-size unicorn.png --raw
2123
192256
24+
$ gzip-size unicorn.png --include-original
25+
392 kB → 192 kB
2226
`, {
2327
flags: {
2428
level: {
2529
type: 'number'
2630
},
2731
raw: {
2832
type: 'boolean'
33+
},
34+
includeOriginal: {
35+
type: 'boolean'
2936
}
3037
}
3138
});
@@ -45,5 +52,11 @@ if (cli.flags.level) {
4552
}
4653

4754
source.pipe(gzipSize.stream(options)).on('gzip-size', size => {
48-
console.log(cli.flags.raw ? size : prettyBytes(size));
55+
let output = cli.flags.raw ? size : prettyBytes(size);
56+
if (cli.flags.includeOriginal) {
57+
const {size: originalSize} = fs.statSync(input);
58+
output = (cli.flags.raw ? originalSize : prettyBytes(originalSize)) + chalk.dim(' → ') + output;
59+
}
60+
61+
console.log(output);
4962
});

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"stdin"
3434
],
3535
"dependencies": {
36+
"chalk": "^4.1.1",
3637
"gzip-size": "^6.0.0",
3738
"meow": "^9.0.0",
3839
"pretty-bytes": "^5.6.0"

readme.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,17 @@ $ gzip-size --help
1818
$ cat <file> | gzip-size
1919
2020
Options
21-
--level Compression level [0-9] (Default: 9)
22-
--raw Display value in bytes
21+
--level Compression level [0-9] (Default: 9)
22+
--raw Display value in bytes
23+
--include-original Include original size
2324
2425
Examples
2526
$ gzip-size unicorn.png
2627
192 kB
2728
$ gzip-size unicorn.png --raw
2829
192256
30+
$ gzip-size unicorn.png --include-original
31+
392 kB → 192 kB
2932
```
3033

3134
## Related

test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,9 @@ test('stdin', async t => {
2222
});
2323
t.is(Number.parseInt(stdout, 10), gzipSize.sync(fixture));
2424
});
25+
26+
test('include original', async t => {
27+
const {stdout} = await execa('./cli.js', ['test.js', '--raw', '--include-original']);
28+
const {size} = fs.statSync('test.js');
29+
t.is(Number.parseInt(stdout, 10), size);
30+
});

0 commit comments

Comments
 (0)