Skip to content

Commit

Permalink
Merge 066e4ff into 3299395
Browse files Browse the repository at this point in the history
  • Loading branch information
also committed Aug 10, 2019
2 parents 3299395 + 066e4ff commit 4bd9f11
Show file tree
Hide file tree
Showing 18 changed files with 2,953 additions and 92 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Expand Up @@ -32,3 +32,5 @@ node_modules
.vscode

dist

!tests/generate-data/dist
143 changes: 89 additions & 54 deletions tests/__snapshots__/api.test.ts.snap
Expand Up @@ -2,46 +2,60 @@ exports['api explore should accept buffer with inline map 1'] = {
"bundles": [
{
"bundleName": "Buffer",
"totalBytes": 3454,
"unmappedBytes": 0,
"totalBytes": 2988,
"unmappedBytes": 2309,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"dist/bar.js": 2854,
"dist/foo.js": 137,
"<unmapped>": 0
"node_modules/browser-pack/_prelude.js": 478,
"dist/bar.js": 104,
"dist/foo.js": 97,
"<unmapped>": 2309
}
}
],
"errors": []
"errors": [
{
"bundleName": "Buffer",
"isWarning": true,
"code": "UnmappedBytes",
"message": "Unable to map 2309/2988 bytes (77.28%)"
}
]
}

exports['api explore should accept buffers with js and map 1'] = {
"bundles": [
{
"bundleName": "Buffer",
"totalBytes": 697,
"unmappedBytes": 0,
"totalBytes": 715,
"unmappedBytes": 36,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"dist/bar.js": 97,
"dist/foo.js": 137,
"<unmapped>": 0
"node_modules/browser-pack/_prelude.js": 478,
"dist/bar.js": 104,
"dist/foo.js": 97,
"<unmapped>": 36
}
}
],
"errors": []
"errors": [
{
"bundleName": "Buffer",
"isWarning": true,
"code": "UnmappedBytes",
"message": "Unable to map 36/715 bytes (5.03%)"
}
]
}

exports['api explore should generate data respecting onlyMapped and replace options 1'] = {
"bundles": [
{
"bundleName": "data/foo.min.js",
"totalBytes": 697,
"unmappedBytes": 0,
"totalBytes": 715,
"unmappedBytes": 36,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"hello/bar.js": 97,
"hello/foo.js": 137
"node_modules/browser-pack/_prelude.js": 478,
"hello/bar.js": 104,
"hello/foo.js": 97
}
}
],
Expand All @@ -52,65 +66,86 @@ exports['api explore should generate data when provided with file with reference
"bundles": [
{
"bundleName": "data/foo.min.js",
"totalBytes": 697,
"unmappedBytes": 0,
"totalBytes": 715,
"unmappedBytes": 36,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"dist/bar.js": 97,
"dist/foo.js": 137,
"<unmapped>": 0
"node_modules/browser-pack/_prelude.js": 478,
"dist/bar.js": 104,
"dist/foo.js": 97,
"<unmapped>": 36
}
}
],
"errors": []
"errors": [
{
"bundleName": "data/foo.min.js",
"isWarning": true,
"code": "UnmappedBytes",
"message": "Unable to map 36/715 bytes (5.03%)"
}
]
}

exports['api explore should generate data when provided with file with separated map file 1'] = {
"bundles": [
{
"bundleName": "data/no-map.js",
"totalBytes": 662,
"unmappedBytes": 0,
"totalBytes": 680,
"unmappedBytes": 1,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"dist/bar.js": 62,
"dist/foo.js": 137,
"<unmapped>": 0
"node_modules/browser-pack/_prelude.js": 478,
"dist/bar.js": 104,
"dist/foo.js": 97,
"<unmapped>": 1
}
}
],
"errors": []
"errors": [
{
"bundleName": "data/no-map.js",
"isWarning": true,
"code": "UnmappedBytes",
"message": "Unable to map 1/680 bytes (0.15%)"
}
]
}

exports['api explore should generate data when provided with js file with inline map 1'] = {
"bundles": [
{
"bundleName": "data/inline-map.js",
"totalBytes": 3454,
"unmappedBytes": 0,
"totalBytes": 2988,
"unmappedBytes": 2309,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"dist/bar.js": 2854,
"dist/foo.js": 137,
"<unmapped>": 0
"node_modules/browser-pack/_prelude.js": 478,
"dist/bar.js": 104,
"dist/foo.js": 97,
"<unmapped>": 2309
}
}
],
"errors": []
"errors": [
{
"bundleName": "data/inline-map.js",
"isWarning": true,
"code": "UnmappedBytes",
"message": "Unable to map 2309/2988 bytes (77.28%)"
}
]
}

exports['api explore when output format specified should generate JSON 1'] = `
{
"results": [
{
"bundleName": "data/foo.min.js",
"totalBytes": 697,
"unmappedBytes": 0,
"totalBytes": 715,
"unmappedBytes": 36,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"dist/bar.js": 97,
"dist/foo.js": 137,
"<unmapped>": 0
"node_modules/browser-pack/_prelude.js": 478,
"dist/bar.js": 104,
"dist/foo.js": 97,
"<unmapped>": 36
}
}
]
Expand All @@ -119,13 +154,13 @@ exports['api explore when output format specified should generate JSON 1'] = `

exports['api explore when output format specified should generate TSV 1'] = `
Source\tSize\r
node_modules/browserify/node_modules/browser-pack/_prelude.js\t463\r
dist/foo.js\t137\r
dist/bar.js\t97\r
<unmapped>\t0\r
node_modules/browser-pack/_prelude.js\t478\r
dist/bar.js\t104\r
dist/foo.js\t97\r
<unmapped>\t36\r
\r
dist/bar.js\t2854\r
node_modules/browserify/node_modules/browser-pack/_prelude.js\t463\r
dist/foo.js\t137\r
<unmapped>\t0
<unmapped>\t2309\r
node_modules/browser-pack/_prelude.js\t478\r
dist/bar.js\t104\r
dist/foo.js\t97
`
38 changes: 19 additions & 19 deletions tests/__snapshots__/cli.test.ts.snap
Expand Up @@ -47,7 +47,7 @@ exports['CLI should output result as html 1'] = `
</body>
<script>
var treeDataMap = {"data/inline-map.js":{"name":"/ \u2022 3.45 KB \u2022 100.0%","data":{"$area":3454},"children":[{"name":"node_modules \u2022 463 B \u2022 13.4%","data":{"$area":463},"children":[{"name":"browserify \u2022 463 B \u2022 13.4%","data":{"$area":463},"children":[{"name":"node_modules \u2022 463 B \u2022 13.4%","data":{"$area":463},"children":[{"name":"browser-pack \u2022 463 B \u2022 13.4%","data":{"$area":463},"children":[{"name":"_prelude.js \u2022 463 B \u2022 13.4%","data":{"$area":463}}]}]}]}]},{"name":"dist \u2022 2.99 KB \u2022 86.6%","data":{"$area":2991},"children":[{"name":"bar.js \u2022 2.85 KB \u2022 82.6%","data":{"$area":2854}},{"name":"foo.js \u2022 137 B \u2022 4.0%","data":{"$area":137}}]},{"name":"&lt;unmapped&gt; \u2022 0 B \u2022 0.0%","data":{"$area":0}}]}};
var treeDataMap = {"data/inline-map.js":{"name":"/ \u2022 2.99 KB \u2022 100.0%","data":{"$area":2988},"children":[{"name":"node_modules \u2022 478 B \u2022 16.0%","data":{"$area":478},"children":[{"name":"browser-pack \u2022 478 B \u2022 16.0%","data":{"$area":478},"children":[{"name":"_prelude.js \u2022 478 B \u2022 16.0%","data":{"$area":478}}]}]},{"name":"dist \u2022 201 B \u2022 6.7%","data":{"$area":201},"children":[{"name":"bar.js \u2022 104 B \u2022 3.5%","data":{"$area":104}},{"name":"foo.js \u2022 97 B \u2022 3.2%","data":{"$area":97}}]},{"name":"&lt;unmapped&gt; \u2022 2.31 KB \u2022 77.3%","data":{"$area":2309}}]}};
</script>
<script src="data:application/javascript;base64,Ly8gVmVuZG9yZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcm1taC93ZWJ0cmVlbWFwL2Jsb2IvOWZhMGMwNjZhMTBlYTQ0MDJkOTYwYjBjNmMxYTQzMjg0NmFjN2ZjNC93ZWJ0cmVlbWFwLmpzCgovLyBDb3B5cmlnaHQgMjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAovLwovLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgovLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKLy8gU2l6ZSBvZiBib3JkZXIgYXJvdW5kIG5vZGVzLgovLyBXZSBjb3VsZCBzdXBwb3J0IGFyYml0cmFyeSBib3JkZXJzIHVzaW5nIGdldENvbXB1dGVkU3R5bGUoKSwgYnV0IEkgYW0KLy8gc2tlcHRpY2FsIHRoZSBleHRyYSBjb21wbGV4aXR5IChhbmQgcGVyZm9ybWFuY2UgaGl0KSBpcyB3b3J0aCBpdC4KCjsoZnVuY3Rpb24oKSB7CnZhciBrQm9yZGVyV2lkdGggPSAxOwoKLy8gUGFkZGluZyBhcm91bmQgY29udGVudHMuCi8vIFRPRE86IGRvIHRoaXMgd2l0aCBhIG5lc3RlZCBkaXYgdG8gYWxsb3cgaXQgdG8gYmUgQ1NTLXN0eWxlYWJsZS4KdmFyIGtQYWRkaW5nID0gNDsKCi8vIHgveSByYXRpbyB0byBhaW0gZm9yIC0tIHdpZGVyIHJlY3RhbmdsZXMgYXJlIGJldHRlciBmb3IgdGV4dCBkaXNwbGF5CnZhciBrQXNwZWN0UmF0aW8gPSAxLjI7Cgp2YXIgZm9jdXNlZCA9IG51bGw7CgpmdW5jdGlvbiBmb2N1cyh0cmVlKSB7CiAgZm9jdXNlZCA9IHRyZWU7CgogIC8vIEhpZGUgYWxsIHZpc2libGUgc2libGluZ3Mgb2YgYWxsIG91ciBhbmNlc3RvcnMgYnkgbG93ZXJpbmcgdGhlbS4KICB2YXIgbGV2ZWwgPSAwOwogIHZhciByb290ID0gdHJlZTsKICB3aGlsZSAocm9vdC5wYXJlbnQpIHsKICAgIHJvb3QgPSByb290LnBhcmVudDsKICAgIGxldmVsICs9IDE7CiAgICBmb3IgKHZhciBpID0gMCwgc2libGluZzsgc2libGluZyA9IHJvb3QuY2hpbGRyZW5baV07ICsraSkgewogICAgICBpZiAoc2libGluZy5kb20pCiAgICAgICAgc2libGluZy5kb20uc3R5bGUuekluZGV4ID0gMDsKICAgIH0KICB9CiAgdmFyIHdpZHRoID0gcm9vdC5kb20ub2Zmc2V0V2lkdGg7CiAgdmFyIGhlaWdodCA9IHJvb3QuZG9tLm9mZnNldEhlaWdodDsKICAvLyBVbmhpZGUgKHJhaXNlKSBhbmQgbWF4aW1pemUgdXMgYW5kIG91ciBhbmNlc3RvcnMuCiAgZm9yICh2YXIgdCA9IHRyZWU7IHQucGFyZW50OyB0ID0gdC5wYXJlbnQpIHsKICAgIC8vIFNoaWZ0IG9mZiBieSBib3JkZXIgc28gd2UgZG9uJ3QgZ2V0IG5lc3RlZCBib3JkZXJzLgogICAgLy8gVE9ETzogYWN0dWFsbHkgbWFrZSBuZXN0ZWQgYm9yZGVycyB3b3JrIChuZWVkIHRvIGFkanVzdCB3aWR0aC9oZWlnaHQpLgogICAgcG9zaXRpb24odC5kb20sIC1rQm9yZGVyV2lkdGgsIC1rQm9yZGVyV2lkdGgsIHdpZHRoLCBoZWlnaHQpOwogICAgdC5kb20uc3R5bGUuekluZGV4ID0gMTsKICB9CiAgLy8gQW5kIGxheW91dCBpbnRvIHRoZSB0b3Btb3N0IGJveC4KICBsYXlvdXQodHJlZSwgbGV2ZWwsIHdpZHRoLCBoZWlnaHQpOwp9CgpmdW5jdGlvbiBtYWtlRG9tKHRyZWUsIGxldmVsKSB7CiAgdmFyIGRvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIGRvbS5zdHlsZS56SW5kZXggPSAxOwogIGRvbS5jbGFzc05hbWUgPSAnd2VidHJlZW1hcC1ub2RlIHdlYnRyZWVtYXAtbGV2ZWwnICsgTWF0aC5taW4obGV2ZWwsIDQpOwogIGlmICh0cmVlLmRhdGFbJyRzeW1ib2wnXSkgewogICAgZG9tLmNsYXNzTmFtZSArPSAoJyB3ZWJ0cmVlbWFwLXN5bWJvbC0nICsKICB0cmVlLmRhdGFbJyRzeW1ib2wnXS5yZXBsYWNlKCcgJywgJ18nKSk7CiAgfQogIGlmICh0cmVlLmRhdGFbJyRkb21pbmFudF9zeW1ib2wnXSkgewogICAgZG9tLmNsYXNzTmFtZSArPSAoJyB3ZWJ0cmVlbWFwLXN5bWJvbC0nICsKICB0cmVlLmRhdGFbJyRkb21pbmFudF9zeW1ib2wnXS5yZXBsYWNlKCcgJywgJ18nKSk7CiAgICBkb20uY2xhc3NOYW1lICs9ICgnIHdlYnRyZWVtYXAtYWdncmVnYXRlJyk7CiAgfQoKICBkb20ub25tb3VzZWRvd24gPSBmdW5jdGlvbihlKSB7CiAgICBpZiAoZS5idXR0b24gPT0gMCkgewogICAgICBpZiAoZm9jdXNlZCAmJiB0cmVlID09IGZvY3VzZWQgJiYgZm9jdXNlZC5wYXJlbnQpIHsKICAgICAgICBmb2N1cyhmb2N1c2VkLnBhcmVudCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9jdXModHJlZSk7CiAgICAgIH0KICAgIH0KICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICByZXR1cm4gdHJ1ZTsKICB9OwoKICB2YXIgY2FwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIGNhcHRpb24uY2xhc3NOYW1lID0gJ3dlYnRyZWVtYXAtY2FwdGlvbic7CiAgY2FwdGlvbi5pbm5lckhUTUwgPSB0cmVlLm5hbWU7CiAgZG9tLmFwcGVuZENoaWxkKGNhcHRpb24pOwogIGRvbS50aXRsZSA9IHRyZWUubmFtZTsKCiAgdHJlZS5kb20gPSBkb207CiAgcmV0dXJuIGRvbTsKfQoKZnVuY3Rpb24gcG9zaXRpb24oZG9tLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7CiAgLy8gQ1NTIHdpZHRoL2hlaWdodCBkb2VzIG5vdCBpbmNsdWRlIGJvcmRlci4KICB3aWR0aCAtPSBrQm9yZGVyV2lkdGgqMjsKICBoZWlnaHQgLT0ga0JvcmRlcldpZHRoKjI7CgogIGRvbS5zdHlsZS5sZWZ0ICAgPSB4ICsgJ3B4JzsKICBkb20uc3R5bGUudG9wICAgID0geSArICdweCc7CiAgZG9tLnN0eWxlLndpZHRoICA9IE1hdGgubWF4KHdpZHRoLCAwKSArICdweCc7CiAgZG9tLnN0eWxlLmhlaWdodCA9IE1hdGgubWF4KGhlaWdodCwgMCkgKyAncHgnOwp9CgovLyBHaXZlbiBhIGxpc3Qgb2YgcmVjdGFuZ2xlcyB8bm9kZXN8LCB0aGUgMS1kIHNwYWNlIGF2YWlsYWJsZQovLyB8c3BhY2V8LCBhbmQgYSBzdGFydGluZyByZWN0YW5nbGUgaW5kZXggfHN0YXJ0fCwgY29tcHV0ZSBhbiBzcGFuIG9mCi8vIHJlY3RhbmdsZXMgdGhhdCBvcHRpbWl6ZXMgYSBwbGVhc2FudCBhc3BlY3QgcmF0aW8uCi8vCi8vIFJldHVybnMgW2VuZCwgc3VtXSwgd2hlcmUgZW5kIGlzIG9uZSBwYXN0IHRoZSBsYXN0IHJlY3RhbmdsZSBhbmQgc3VtIGlzIHRoZQovLyAyLWQgc3VtIG9mIHRoZSByZWN0YW5nbGVzJyBhcmVhcy4KZnVuY3Rpb24gc2VsZWN0U3Bhbihub2Rlcywgc3BhY2UsIHN0YXJ0KSB7CiAgLy8gQWRkIHJlY3RhbmdsZSBvbmUgYnkgb25lLCBzdG9wcGluZyB3aGVuIGFzcGVjdCByYXRpb3MgYmVnaW4gdG8gZ28KICAvLyBiYWQuICBSZXN1bHQgaXMgW3N0YXJ0LGVuZCkgY292ZXJpbmcgdGhlIGJlc3QgcnVuIGZvciB0aGlzIHNwYW4uCiAgLy8gaHR0cDovL2NpdGVzZWVyeC5pc3QucHN1LmVkdS92aWV3ZG9jL3N1bW1hcnk/ZG9pPTEwLjEuMS4zNi42Njg1CiAgdmFyIG5vZGUgPSBub2Rlc1tzdGFydF07CiAgdmFyIHJtaW4gPSBub2RlLmRhdGFbJyRhcmVhJ107ICAvLyBTbWFsbGVzdCBzZWVuIGNoaWxkIHNvIGZhci4KICB2YXIgcm1heCA9IHJtaW47ICAgICAgICAgICAgICAgIC8vIExhcmdlc3QgY2hpbGQuCiAgdmFyIHJzdW0gPSAwOyAgICAgICAgICAgICAgICAgICAvLyBTdW0gb2YgY2hpbGRyZW4gaW4gdGhpcyBzcGFuLgogIHZhciBsYXN0X3Njb3JlID0gMDsgICAgICAgICAgICAgLy8gQmVzdCBzY29yZSB5ZXQgZm91bmQuCiAgZm9yICh2YXIgZW5kID0gc3RhcnQ7IG5vZGUgPSBub2Rlc1tlbmRdOyArK2VuZCkgewogICAgdmFyIHNpemUgPSBub2RlLmRhdGFbJyRhcmVhJ107CiAgICBpZiAoc2l6ZSA8IHJtaW4pCiAgICAgIHJtaW4gPSBzaXplOwogICAgaWYgKHNpemUgPiBybWF4KQogICAgICBybWF4ID0gc2l6ZTsKICAgIHJzdW0gKz0gc2l6ZTsKCiAgICAvLyBUaGlzIGZvcm11bGEgaXMgZnJvbSB0aGUgcGFwZXIsIGJ1dCB5b3UgY2FuIGVhc2lseSBwcm92ZSB0bwogICAgLy8geW91cnNlbGYgaXQncyB0YWtpbmcgdGhlIGxhcmdlciBvZiB0aGUgeC95IGFzcGVjdCByYXRpbyBvciB0aGUKICAgIC8vIHkveCBhc3BlY3QgcmF0aW8uICBUaGUgYWRkaXRpb25hbCBtYWdpYyBmdWRnZSBjb25zdGFudCBvZiBrQXNwZWN0UmF0aW8KICAgIC8vIGxldHMgdXMgcHJlZmVyIHdpZGVyIHJlY3RhbmdsZXMgdG8gdGFsbGVyIG9uZXMuCiAgICB2YXIgc2NvcmUgPSBNYXRoLm1heChzcGFjZSpzcGFjZSpybWF4IC8gKHJzdW0qcnN1bSksCiAgICAgICAgICAgICAgICAgICAgICAgICBrQXNwZWN0UmF0aW8qcnN1bSpyc3VtIC8gKHNwYWNlKnNwYWNlKnJtaW4pKTsKICAgIGlmIChsYXN0X3Njb3JlICYmIHNjb3JlID4gbGFzdF9zY29yZSkgewogICAgICByc3VtIC09IHNpemU7ICAvLyBVbmRvIHNpemUgYWRkaXRpb24gZnJvbSBqdXN0IGFib3ZlLgogICAgICBicmVhazsKICAgIH0KICAgIGxhc3Rfc2NvcmUgPSBzY29yZTsKICB9CiAgcmV0dXJuIFtlbmQsIHJzdW1dOwp9CgpmdW5jdGlvbiBsYXlvdXQodHJlZSwgbGV2ZWwsIHdpZHRoLCBoZWlnaHQpIHsKICBpZiAoISgnY2hpbGRyZW4nIGluIHRyZWUpKQogICAgcmV0dXJuOwoKICB2YXIgdG90YWwgPSB0cmVlLmRhdGFbJyRhcmVhJ107CgogIC8vIFhYWCB3aHkgZG8gSSBuZWVkIGFuIGV4dHJhIC0xLy0yIGhlcmUgZm9yIHdpZHRoL2hlaWdodCB0byBsb29rIHJpZ2h0PwogIHZhciB4MSA9IDAsIHkxID0gMCwgeDIgPSB3aWR0aCAtIDEsIHkyID0gaGVpZ2h0IC0gMjsKICB4MSArPSBrUGFkZGluZzsgeTEgKz0ga1BhZGRpbmc7CiAgeDIgLT0ga1BhZGRpbmc7IHkyIC09IGtQYWRkaW5nOwogIHkxICs9IDE0OyAgLy8gWFhYIGdldCBmaXJzdCBjaGlsZCBoZWlnaHQgZm9yIGNhcHRpb24gc3BhY2luZwoKICB2YXIgcGl4ZWxzX3RvX3VuaXRzID0gTWF0aC5zcXJ0KHRvdGFsIC8gKCh4MiAtIHgxKSAqICh5MiAtIHkxKSkpOwoKICAvLyBUaGUgYWxnb3JpdGhtIGRvZXMgYmVzdCBhdCBsYXlpbmcgb3V0IGl0ZW1zIGZyb20gbGFyZ2VzdCB0byBzbWFsbGVzdC4KICAvLyBTb3J0IHRoZW0gdG8gZW5zdXJlIHRoaXMuCiAgaWYgKCF0cmVlLmNoaWxkcmVuLnNvcnRlZCkgewogICAgdHJlZS5jaGlsZHJlbi5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgIHJldHVybiBiLmRhdGFbJyRhcmVhJ10gLSBhLmRhdGFbJyRhcmVhJ107CiAgICB9KTsKICAgIHRyZWUuY2hpbGRyZW4uc29ydGVkID0gdHJ1ZTsKICB9CgogIGZvciAodmFyIHN0YXJ0ID0gMCwgY2hpbGQ7IGNoaWxkID0gdHJlZS5jaGlsZHJlbltzdGFydF07ICsrc3RhcnQpIHsKICAgIGlmICh4MiAtIHgxIDwgNjAgfHwgeTIgLSB5MSA8IDQwKSB7CiAgICAgIGlmIChjaGlsZC5kb20pIHsKICAgICAgICBjaGlsZC5kb20uc3R5bGUuekluZGV4ID0gMDsKICAgICAgICBwb3NpdGlvbihjaGlsZC5kb20sIC0yLCAtMiwgMCwgMCk7CiAgICAgIH0KICAgICAgY29udGludWU7CiAgICB9CgogICAgLy8gRHluYW1pY2FsbHkgZGVjaWRlIHdoZXRoZXIgdG8gc3BsaXQgaW4geCBvciB5IGJhc2VkIG9uIGFzcGVjdCByYXRpby4KICAgIHZhciB5c3BsaXQgPSAoKHkyIC0geTEpIC8gKHgyIC0geDEpKSA+IGtBc3BlY3RSYXRpbzsKCiAgICB2YXIgc3BhY2U7ICAvLyBTcGFjZSBhdmFpbGFibGUgYWxvbmcgbGF5b3V0IGF4aXMuCiAgICBpZiAoeXNwbGl0KQogICAgICBzcGFjZSA9ICh5MiAtIHkxKSAqIHBpeGVsc190b191bml0czsKICAgIGVsc2UKICAgICAgc3BhY2UgPSAoeDIgLSB4MSkgKiBwaXhlbHNfdG9fdW5pdHM7CgogICAgdmFyIHNwYW4gPSBzZWxlY3RTcGFuKHRyZWUuY2hpbGRyZW4sIHNwYWNlLCBzdGFydCk7CiAgICB2YXIgZW5kID0gc3BhblswXSwgcnN1bSA9IHNwYW5bMV07CgogICAgLy8gTm93IHRoYXQgd2UndmUgc2VsZWN0ZWQgYSBzcGFuLCBsYXkgb3V0IHJlY3RhbmdsZXMgW3N0YXJ0LGVuZCkgaW4gb3VyCiAgICAvLyBhdmFpbGFibGUgc3BhY2UuCiAgICB2YXIgeCA9IHgxLCB5ID0geTE7CiAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgewogICAgICBjaGlsZCA9IHRyZWUuY2hpbGRyZW5baV07CiAgICAgIGlmICghY2hpbGQuZG9tKSB7CiAgICAgICAgY2hpbGQucGFyZW50ID0gdHJlZTsKICAgICAgICBjaGlsZC5kb20gPSBtYWtlRG9tKGNoaWxkLCBsZXZlbCArIDEpOwogICAgICAgIHRyZWUuZG9tLmFwcGVuZENoaWxkKGNoaWxkLmRvbSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2hpbGQuZG9tLnN0eWxlLnpJbmRleCA9IDE7CiAgICAgIH0KICAgICAgdmFyIHNpemUgPSBjaGlsZC5kYXRhWyckYXJlYSddOwogICAgICB2YXIgZnJhYyA9IHNpemUgLyByc3VtOwogICAgICBpZiAoeXNwbGl0KSB7CiAgICAgICAgd2lkdGggPSByc3VtIC8gc3BhY2U7CiAgICAgICAgaGVpZ2h0ID0gc2l6ZSAvIHdpZHRoOwogICAgICB9IGVsc2UgewogICAgICAgIGhlaWdodCA9IHJzdW0gLyBzcGFjZTsKICAgICAgICB3aWR0aCA9IHNpemUgLyBoZWlnaHQ7CiAgICAgIH0KICAgICAgd2lkdGggLz0gcGl4ZWxzX3RvX3VuaXRzOwogICAgICBoZWlnaHQgLz0gcGl4ZWxzX3RvX3VuaXRzOwogICAgICB3aWR0aCA9IE1hdGgucm91bmQod2lkdGgpOwogICAgICBoZWlnaHQgPSBNYXRoLnJvdW5kKGhlaWdodCk7CiAgICAgIHBvc2l0aW9uKGNoaWxkLmRvbSwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CiAgICAgIGlmICgnY2hpbGRyZW4nIGluIGNoaWxkKSB7CiAgICAgICAgbGF5b3V0KGNoaWxkLCBsZXZlbCArIDEsIHdpZHRoLCBoZWlnaHQpOwogICAgICB9CiAgICAgIGlmICh5c3BsaXQpCiAgICAgICAgeSArPSBoZWlnaHQ7CiAgICAgIGVsc2UKICAgICAgICB4ICs9IHdpZHRoOwogICAgfQoKICAgIC8vIFNocmluayBvdXIgYXZhaWxhYmxlIHNwYWNlIGJhc2VkIG9uIHRoZSBhbW91bnQgd2UgdXNlZC4KICAgIGlmICh5c3BsaXQpCiAgICAgIHgxICs9IE1hdGgucm91bmQoKHJzdW0gLyBzcGFjZSkgLyBwaXhlbHNfdG9fdW5pdHMpOwogICAgZWxzZQogICAgICB5MSArPSBNYXRoLnJvdW5kKChyc3VtIC8gc3BhY2UpIC8gcGl4ZWxzX3RvX3VuaXRzKTsKCiAgICAvLyBlbmQgcG9pbnRzIG9uZSBwYXN0IHdoZXJlIHdlIGVuZGVkLCB3aGljaCBpcyB3aGVyZSB3ZSB3YW50IHRvCiAgICAvLyBiZWdpbiB0aGUgbmV4dCBpdGVyYXRpb24sIGJ1dCBzdWJ0cmFjdCBvbmUgdG8gYmFsYW5jZSB0aGUgKysgaW4KICAgIC8vIHRoZSBsb29wLgogICAgc3RhcnQgPSBlbmQgLSAxOwogIH0KfQoKZnVuY3Rpb24gYXBwZW5kVHJlZW1hcChkb20sIGRhdGEpIHsKICB2YXIgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGRvbSwgbnVsbCk7CiAgdmFyIHdpZHRoID0gcGFyc2VJbnQoc3R5bGUud2lkdGgpOwogIHZhciBoZWlnaHQgPSBwYXJzZUludChzdHlsZS5oZWlnaHQpOwogIGlmICghZGF0YS5kb20pCiAgICBtYWtlRG9tKGRhdGEsIDApOwogIGRvbS5hcHBlbmRDaGlsZChkYXRhLmRvbSk7CiAgcG9zaXRpb24oZGF0YS5kb20sIDAsIDAsIHdpZHRoLCBoZWlnaHQpOwogIGxheW91dChkYXRhLCAwLCB3aWR0aCwgaGVpZ2h0KTsKfQoKd2luZG93LmFwcGVuZFRyZWVtYXAgPSBhcHBlbmRUcmVlbWFwOwp9KSh3aW5kb3cpOwo="></script>
Expand Down Expand Up @@ -79,24 +79,24 @@ exports['CLI should print multiple results as JSON 1'] = `
"results": [
{
"bundleName": "data/inline-map.js",
"totalBytes": 3454,
"unmappedBytes": 0,
"totalBytes": 2988,
"unmappedBytes": 2309,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"dist/bar.js": 2854,
"dist/foo.js": 137,
"<unmapped>": 0
"node_modules/browser-pack/_prelude.js": 478,
"dist/bar.js": 104,
"dist/foo.js": 97,
"<unmapped>": 2309
}
},
{
"bundleName": "data/foo.min.js",
"totalBytes": 697,
"unmappedBytes": 0,
"totalBytes": 715,
"unmappedBytes": 36,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"dist/bar.js": 97,
"dist/foo.js": 137,
"<unmapped>": 0
"node_modules/browser-pack/_prelude.js": 478,
"dist/bar.js": 104,
"dist/foo.js": 97,
"<unmapped>": 36
}
}
]
Expand All @@ -109,13 +109,13 @@ exports['CLI should print result as JSON and support path wrapped by quotes 1']
"results": [
{
"bundleName": "data/inline-map.js",
"totalBytes": 3454,
"unmappedBytes": 0,
"totalBytes": 2988,
"unmappedBytes": 2309,
"files": {
"node_modules/browserify/node_modules/browser-pack/_prelude.js": 463,
"dist/bar.js": 2854,
"dist/foo.js": 137,
"<unmapped>": 0
"node_modules/browser-pack/_prelude.js": 478,
"dist/bar.js": 104,
"dist/foo.js": 97,
"<unmapped>": 2309
}
}
]
Expand Down

0 comments on commit 4bd9f11

Please sign in to comment.