Skip to content

Commit 3986993

Browse files
committed
reduce the size of the compiled output
1 parent 6030c87 commit 3986993

File tree

3 files changed

+22
-20
lines changed

3 files changed

+22
-20
lines changed

src/index.mjs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ export default function(url, options) {
1010
request.open(options.method || 'get', url, true);
1111

1212
request.onload = () => {
13-
const head = { all: [], keys: [], raw: {} };
13+
const all = [], keys = [], raw = {};
1414
request.getAllResponseHeaders().replace(regex, (m, key, value) => {
15-
head.all.push([key, value]);
16-
head.keys.push(key = key.toLowerCase());
17-
head.raw[key] = head.raw[key] ? `${head.raw[key]},${value}` : value;
15+
all.push([key, value]);
16+
keys.push(key = key.toLowerCase());
17+
raw[key] = raw[key] ? `${raw[key]},${value}` : value;
1818
});
19-
resolve(response(request, head));
19+
resolve(response(request, all, keys, raw));
2020
};
2121

2222
request.onerror = reject;

src/lib/response.mjs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export default function response (request, headers) {
1+
export default function response (request, all, keys, raw) {
22
return {
33
ok: (request.status/100|0) == 2, // 200-299
44
statusText: request.statusText,
@@ -7,12 +7,12 @@ export default function response (request, headers) {
77
text: () => Promise.resolve(request.responseText),
88
json: () => Promise.resolve(request.responseText).then(JSON.parse),
99
blob: () => Promise.resolve(new Blob([request.response])),
10-
clone: () => response(request, headers),
10+
clone: () => response(request, all, keys, raw),
1111
headers: {
12-
keys: () => headers.keys,
13-
entries: () => headers.all,
14-
get: n => headers.raw[n.toLowerCase()],
15-
has: n => n.toLowerCase() in headers.raw
12+
keys: () => keys,
13+
entries: () => all,
14+
get: n => raw[n.toLowerCase()],
15+
has: n => n.toLowerCase() in raw
1616
}
1717
};
1818
}

test/lib/response.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import response from '../../src/lib/response.mjs';
22

33
describe('response()', () => {
4-
it('returns text()', () => response({ responseText: 'A passing test.' })
4+
const raw = { 'x-foo': 'foo', 'x-bar': 'bar' };
5+
const keys = Object.keys(raw);
6+
const all = Object.entries(raw);
7+
const resp = response({}, all, keys, raw);
8+
9+
it('returns text()', () => response({ responseText: 'A passing test.' }, [], [], {})
510
.text()
611
.then((text) => expect(text).toBe('A passing test.'))
712
);
@@ -12,19 +17,16 @@ describe('response()', () => {
1217
);
1318

1419
it('returns headers', () => {
15-
const all = [['x-foo', 'bar'], ['x-baz', 'boo']];
16-
const result = response({}, { all }).headers.entries();
17-
expect(result).toEqual(all);
20+
expect(resp.headers.entries()).toEqual(all);
1821
});
1922

2023
it('returns header keys', () => {
21-
const result = response({}, { keys: ['x-foo'] }).headers.keys();
22-
expect(result).toEqual(['x-foo']);
24+
expect(resp.headers.keys()).toEqual(['x-foo', 'x-bar']);
2325
});
2426

2527
it('returns headers has', () => {
26-
const raw = { 'x-foo': 'bar', 'x-baz': 'boo' };
27-
const test = response({}, { raw }).headers;
28-
expect(test.has('x-foo')).toBe(true);
28+
expect(resp.headers.has('x-foo')).toBe(true);
29+
expect(resp.headers.has('x-bar')).toBe(true);
30+
expect(resp.headers.has('x-baz')).toBe(false);
2931
});
3032
});

0 commit comments

Comments
 (0)