Skip to content

Commit

Permalink
Merge pull request #214 from styfle/brotli-optional
Browse files Browse the repository at this point in the history
Make brotli-size optional
  • Loading branch information
siddharthkp authored May 2, 2018
2 parents 8d99ed9 + eecc3f9 commit 1294f58
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ npx bundlesize
#### 1) Add the path and maxSize in your `package.json`.
By default the gzipped size is tested. You can use the `compression` option to change this. (`gzip`, `brotli`, or `none`).

To use the `brotli` compression option, you must install the peer dependency: `npm install --save brotli-size`

```json
{
"name": "your cool library",
Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
"license": "MIT",
"dependencies": {
"axios": "^0.17.0",
"brotli-size": "0.0.1",
"bytes": "^3.0.0",
"ci-env": "^1.4.0",
"commander": "^2.11.0",
Expand Down
11 changes: 9 additions & 2 deletions src/compressed-size.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const { warn } = require('prettycli')
const gzip = require('gzip-size')
const brotli = require('brotli-size')
let brotli

const getCompressedSize = (data, compression = 'gzip') => {
let size
Expand All @@ -8,7 +9,13 @@ const getCompressedSize = (data, compression = 'gzip') => {
size = gzip.sync(data)
break
case 'brotli':
size = brotli.sync(data)
try {
brotli = require('brotli-size')
} catch (e) {
warn(`Missing optional dependency. Install it with:
npm install --save brotli-size`)
}
size = brotli ? brotli.sync(data) : 0
break
case 'none':
default:
Expand Down

0 comments on commit 1294f58

Please sign in to comment.