Skip to content

Commit 1cef03e

Browse files
DraganDanicicMarius Kleidl
andauthored
Only pass strings to HttpRequest#setHeader (#709)
* setHeader value arg should be string * Explicit casting of header values, number to string * Fix syntax * Fix lint --------- Co-authored-by: Marius Kleidl <[email protected]>
1 parent bf4fe1c commit 1cef03e

File tree

5 files changed

+57
-57
lines changed

5 files changed

+57
-57
lines changed

lib/upload.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -579,9 +579,9 @@ class BaseUpload {
579579
const req = this._openRequest('POST', this.options.endpoint)
580580

581581
if (this.options.uploadLengthDeferred) {
582-
req.setHeader('Upload-Defer-Length', 1)
582+
req.setHeader('Upload-Defer-Length', '1')
583583
} else {
584-
req.setHeader('Upload-Length', this._size)
584+
req.setHeader('Upload-Length', `${this._size}`)
585585
}
586586

587587
// Add metadata if values have been added
@@ -754,7 +754,7 @@ class BaseUpload {
754754
req = this._openRequest('PATCH', this.url)
755755
}
756756

757-
req.setHeader('Upload-Offset', this._offset)
757+
req.setHeader('Upload-Offset', `${this._offset}`)
758758
const promise = this._addChunkToRequest(req)
759759

760760
promise
@@ -810,7 +810,7 @@ class BaseUpload {
810810
// upload size and can tell the tus server.
811811
if (this.options.uploadLengthDeferred && done) {
812812
this._size = this._offset + valueSize
813-
req.setHeader('Upload-Length', this._size)
813+
req.setHeader('Upload-Length', `${this._size}`)
814814
}
815815

816816
// The specified uploadSize might not match the actual amount of data that a source

test/spec/test-browser-specific.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ describe('tus', () => {
5959
expect(req.url).toBe('http://tus.io/uploads/resuming')
6060
expect(req.method).toBe('PATCH')
6161
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
62-
expect(req.requestHeaders['Upload-Offset']).toBe(3)
62+
expect(req.requestHeaders['Upload-Offset']).toBe('3')
6363
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
6464
expect(req.body.size).toBe(11 - 3)
6565

@@ -196,7 +196,7 @@ describe('tus', () => {
196196
expect(req.url).toBe('http://tus.io/uploads/storedUrl')
197197
expect(req.method).toBe('PATCH')
198198
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
199-
expect(req.requestHeaders['Upload-Offset']).toBe(3)
199+
expect(req.requestHeaders['Upload-Offset']).toBe('3')
200200
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
201201
expect(req.body.size).toBe(11 - 3)
202202

@@ -291,7 +291,7 @@ describe('tus', () => {
291291
expect(req.url).toBe('http://tus.io/uploads')
292292
expect(req.method).toBe('POST')
293293
expect(req.requestHeaders['Upload-Length']).toBe(undefined)
294-
expect(req.requestHeaders['Upload-Defer-Length']).toBe(1)
294+
expect(req.requestHeaders['Upload-Defer-Length']).toBe('1')
295295

296296
req.respondWith({
297297
status: 201,
@@ -303,7 +303,7 @@ describe('tus', () => {
303303
req = await testStack.nextRequest()
304304
expect(req.url).toBe('http://tus.io/uploads/blargh')
305305
expect(req.method).toBe('PATCH')
306-
expect(req.requestHeaders['Upload-Offset']).toBe(0)
306+
expect(req.requestHeaders['Upload-Offset']).toBe('0')
307307
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
308308
expect(req.body.length).toBe(11)
309309

@@ -320,8 +320,8 @@ describe('tus', () => {
320320
req = await testStack.nextRequest()
321321
expect(req.url).toBe('http://tus.io/uploads/blargh')
322322
expect(req.method).toBe('PATCH')
323-
expect(req.requestHeaders['Upload-Offset']).toBe(11)
324-
expect(req.requestHeaders['Upload-Length']).toBe(11)
323+
expect(req.requestHeaders['Upload-Offset']).toBe('11')
324+
expect(req.requestHeaders['Upload-Length']).toBe('11')
325325
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
326326
expect(req.body).toBe(null)
327327

@@ -369,7 +369,7 @@ describe('tus', () => {
369369
expect(req.url).toBe('http://tus.io/uploads')
370370
expect(req.method).toBe('POST')
371371
expect(req.requestHeaders['Upload-Length']).toBe(undefined)
372-
expect(req.requestHeaders['Upload-Defer-Length']).toBe(1)
372+
expect(req.requestHeaders['Upload-Defer-Length']).toBe('1')
373373

374374
req.respondWith({
375375
status: 201,
@@ -381,7 +381,7 @@ describe('tus', () => {
381381
req = await testStack.nextRequest()
382382
expect(req.url).toBe('http://tus.io/uploads/blargh')
383383
expect(req.method).toBe('PATCH')
384-
expect(req.requestHeaders['Upload-Offset']).toBe(0)
384+
expect(req.requestHeaders['Upload-Offset']).toBe('0')
385385
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
386386
expect(req.body.length).toBe(6)
387387

@@ -399,7 +399,7 @@ describe('tus', () => {
399399
expect(req.url).toBe('http://tus.io/uploads/blargh')
400400
expect(req.method).toBe('PATCH')
401401
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
402-
expect(req.requestHeaders['Upload-Offset']).toBe(6)
402+
expect(req.requestHeaders['Upload-Offset']).toBe('6')
403403
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
404404
expect(req.body.length).toBe(5)
405405

@@ -413,8 +413,8 @@ describe('tus', () => {
413413
req = await testStack.nextRequest()
414414
expect(req.url).toBe('http://tus.io/uploads/blargh')
415415
expect(req.method).toBe('PATCH')
416-
expect(req.requestHeaders['Upload-Offset']).toBe(11)
417-
expect(req.requestHeaders['Upload-Length']).toBe(11)
416+
expect(req.requestHeaders['Upload-Offset']).toBe('11')
417+
expect(req.requestHeaders['Upload-Length']).toBe('11')
418418
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
419419
expect(req.body).toBe(null)
420420

@@ -479,7 +479,7 @@ describe('tus', () => {
479479
req = await testStack.nextRequest()
480480
expect(req.url).toBe('http://tus.io/files/foo')
481481
expect(req.method).toBe('PATCH')
482-
expect(req.requestHeaders['Upload-Length']).toBe(11)
482+
expect(req.requestHeaders['Upload-Length']).toBe('11')
483483

484484
req.respondWith({
485485
status: 204,
@@ -551,7 +551,7 @@ describe('tus', () => {
551551
req = await testStack.nextRequest()
552552
expect(req.url).toBe('http://tus.io/files/foo')
553553
expect(req.method).toBe('PATCH')
554-
expect(req.requestHeaders['Upload-Length']).toBe(11)
554+
expect(req.requestHeaders['Upload-Length']).toBe('11')
555555

556556
req.respondWith({
557557
status: 204,
@@ -645,7 +645,7 @@ describe('tus', () => {
645645
req = await testStack.nextRequest()
646646
expect(req.url).toBe('http://tus.io/files/foo')
647647
expect(req.method).toBe('PATCH')
648-
expect(req.requestHeaders['Upload-Length']).toBe(18)
648+
expect(req.requestHeaders['Upload-Length']).toBe('18')
649649

650650
req.respondWith({
651651
status: 204,
@@ -765,7 +765,7 @@ describe('tus', () => {
765765
req = await testStack.nextRequest()
766766
expect(req.url).toBe('http://tus.io/uploads')
767767
expect(req.method).toBe('POST')
768-
expect(req.requestHeaders['Upload-Length']).toBe(11)
768+
expect(req.requestHeaders['Upload-Length']).toBe('11')
769769

770770
req.respondWith({
771771
status: 201,
@@ -778,7 +778,7 @@ describe('tus', () => {
778778
expect(req.url).toBe('http://tus.io/uploads/blargh')
779779
expect(req.method).toBe('PATCH')
780780
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
781-
expect(req.requestHeaders['Upload-Offset']).toBe(0)
781+
expect(req.requestHeaders['Upload-Offset']).toBe('0')
782782
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
783783
expect(req.body.size).toBe(11)
784784

test/spec/test-common.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('tus', () => {
5555
expect(req.method).toBe('POST')
5656
expect(req.requestHeaders.Custom).toBe('blargh')
5757
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
58-
expect(req.requestHeaders['Upload-Length']).toBe(11)
58+
expect(req.requestHeaders['Upload-Length']).toBe('11')
5959
expect(req.requestHeaders['Upload-Metadata']).toBe(
6060
'foo aGVsbG8=,bar d29ybGQ=,nonlatin c8WCb8WEY2U=,number MTAw',
6161
)
@@ -75,7 +75,7 @@ describe('tus', () => {
7575
expect(req.method).toBe('PATCH')
7676
expect(req.requestHeaders.Custom).toBe('blargh')
7777
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
78-
expect(req.requestHeaders['Upload-Offset']).toBe(0)
78+
expect(req.requestHeaders['Upload-Offset']).toBe('0')
7979
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
8080
expect(req.body.size).toBe(11)
8181

@@ -117,7 +117,7 @@ describe('tus', () => {
117117
expect(req.url).toBe('http://tus.io/uploads')
118118
expect(req.method).toBe('POST')
119119
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
120-
expect(req.requestHeaders['Upload-Length']).toBe(11)
120+
expect(req.requestHeaders['Upload-Length']).toBe('11')
121121

122122
// The upload URL should be cleared when tus-js.client tries to create a new upload.
123123
expect(upload.url).toBe(null)
@@ -145,7 +145,7 @@ describe('tus', () => {
145145
expect(req.url).toBe('http://tus.io/uploads')
146146
expect(req.method).toBe('POST')
147147
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
148-
expect(req.requestHeaders['Upload-Length']).toBe(11)
148+
expect(req.requestHeaders['Upload-Length']).toBe('11')
149149
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
150150
expect(req.body.size).toBe(11)
151151

@@ -189,7 +189,7 @@ describe('tus', () => {
189189
expect(req.url).toBe('http://tus.io/uploads')
190190
expect(req.method).toBe('POST')
191191
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
192-
expect(req.requestHeaders['Upload-Length']).toBe(11)
192+
expect(req.requestHeaders['Upload-Length']).toBe('11')
193193
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
194194
expect(req.body.size).toBe(6)
195195

@@ -212,7 +212,7 @@ describe('tus', () => {
212212
expect(req.url).toBe('http://tus.io/uploads/blargh')
213213
expect(req.method).toBe('PATCH')
214214
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
215-
expect(req.requestHeaders['Upload-Offset']).toBe(6)
215+
expect(req.requestHeaders['Upload-Offset']).toBe('6')
216216
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
217217
expect(req.body.size).toBe(5)
218218

@@ -419,7 +419,7 @@ describe('tus', () => {
419419
expect(req.url).toBe('http://tus.io/uploads')
420420
expect(req.method).toBe('POST')
421421
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
422-
expect(req.requestHeaders['Upload-Length']).toBe(11)
422+
expect(req.requestHeaders['Upload-Length']).toBe('11')
423423

424424
req.respondWith({
425425
status: 201,
@@ -432,7 +432,7 @@ describe('tus', () => {
432432
expect(req.url).toBe('http://tus.io/uploads/blargh')
433433
expect(req.method).toBe('PATCH')
434434
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
435-
expect(req.requestHeaders['Upload-Offset']).toBe(0)
435+
expect(req.requestHeaders['Upload-Offset']).toBe('0')
436436
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
437437
expect(req.body.size).toBe(7)
438438

@@ -447,7 +447,7 @@ describe('tus', () => {
447447
expect(req.url).toBe('http://tus.io/uploads/blargh')
448448
expect(req.method).toBe('PATCH')
449449
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
450-
expect(req.requestHeaders['Upload-Offset']).toBe(7)
450+
expect(req.requestHeaders['Upload-Offset']).toBe('7')
451451
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
452452
expect(req.body.size).toBe(4)
453453

@@ -517,7 +517,7 @@ describe('tus', () => {
517517
expect(req.url).toBe('http://tus.io/uploads')
518518
expect(req.method).toBe('POST')
519519
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
520-
expect(req.requestHeaders['Upload-Length']).toBe(0)
520+
expect(req.requestHeaders['Upload-Length']).toBe('0')
521521

522522
req.respondWith({
523523
status: 201,
@@ -604,7 +604,7 @@ describe('tus', () => {
604604
expect(req.url).toBe('http://tus.io/files/upload')
605605
expect(req.method).toBe('PATCH')
606606
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
607-
expect(req.requestHeaders['Upload-Offset']).toBe(3)
607+
expect(req.requestHeaders['Upload-Offset']).toBe('3')
608608
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
609609
expect(req.body.size).toBe(11 - 3)
610610

@@ -716,7 +716,7 @@ describe('tus', () => {
716716
expect(req.url).toBe('http://tus.io/files/upload')
717717
expect(req.method).toBe('POST')
718718
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
719-
expect(req.requestHeaders['Upload-Offset']).toBe(3)
719+
expect(req.requestHeaders['Upload-Offset']).toBe('3')
720720
expect(req.requestHeaders['X-HTTP-Method-Override']).toBe('PATCH')
721721

722722
req.respondWith({

test/spec/test-node-specific.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ describe('tus', () => {
178178
expect(req.url).toBe('https://tus.io/uploads')
179179
expect(req.method).toBe('POST')
180180
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
181-
expect(req.requestHeaders['Upload-Length']).toBe(5)
181+
expect(req.requestHeaders['Upload-Length']).toBe('5')
182182
expect(req.requestHeaders['Upload-Concat']).toBe('partial')
183183

184184
req.respondWith({
@@ -192,7 +192,7 @@ describe('tus', () => {
192192
expect(req.url).toBe('https://tus.io/uploads/upload1')
193193
expect(req.method).toBe('PATCH')
194194
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
195-
expect(req.requestHeaders['Upload-Offset']).toBe(0)
195+
expect(req.requestHeaders['Upload-Offset']).toBe('0')
196196
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
197197
expect(req.body.size).toBe(5)
198198

@@ -207,7 +207,7 @@ describe('tus', () => {
207207
expect(req.url).toBe('https://tus.io/uploads')
208208
expect(req.method).toBe('POST')
209209
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
210-
expect(req.requestHeaders['Upload-Length']).toBe(6)
210+
expect(req.requestHeaders['Upload-Length']).toBe('6')
211211
expect(req.requestHeaders['Upload-Concat']).toBe('partial')
212212

213213
req.respondWith({
@@ -221,7 +221,7 @@ describe('tus', () => {
221221
expect(req.url).toBe('https://tus.io/uploads/upload2')
222222
expect(req.method).toBe('PATCH')
223223
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
224-
expect(req.requestHeaders['Upload-Offset']).toBe(0)
224+
expect(req.requestHeaders['Upload-Offset']).toBe('0')
225225
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
226226
expect(req.body.size).toBe(6)
227227

@@ -367,7 +367,7 @@ describe('tus', () => {
367367
expect(req.url).toBe('http://tus.io/uploads/resuming')
368368
expect(req.method).toBe('PATCH')
369369
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
370-
expect(req.requestHeaders['Upload-Offset']).toBe(3)
370+
expect(req.requestHeaders['Upload-Offset']).toBe('3')
371371
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
372372
expect(req.body.size).toBe(11 - 3)
373373

@@ -530,9 +530,9 @@ async function expectHelloWorldUpload(input, options) {
530530
expect(req.method).toBe('POST')
531531
if (options.uploadLengthDeferred) {
532532
expect(req.requestHeaders['Upload-Length']).toBe(undefined)
533-
expect(req.requestHeaders['Upload-Defer-Length']).toBe(1)
533+
expect(req.requestHeaders['Upload-Defer-Length']).toBe('1')
534534
} else {
535-
expect(req.requestHeaders['Upload-Length']).toBe(11)
535+
expect(req.requestHeaders['Upload-Length']).toBe('11')
536536
expect(req.requestHeaders['Upload-Defer-Length']).toBe(undefined)
537537
}
538538

@@ -546,7 +546,7 @@ async function expectHelloWorldUpload(input, options) {
546546
req = await options.httpStack.nextRequest()
547547
expect(req.url).toBe('/uploads/blargh')
548548
expect(req.method).toBe('PATCH')
549-
expect(req.requestHeaders['Upload-Offset']).toBe(0)
549+
expect(req.requestHeaders['Upload-Offset']).toBe('0')
550550
expect(await getBodySize(req.body)).toBe(7)
551551

552552
req.respondWith({
@@ -559,10 +559,10 @@ async function expectHelloWorldUpload(input, options) {
559559
req = await options.httpStack.nextRequest()
560560
expect(req.url).toBe('/uploads/blargh')
561561
expect(req.method).toBe('PATCH')
562-
expect(req.requestHeaders['Upload-Offset']).toBe(7)
562+
expect(req.requestHeaders['Upload-Offset']).toBe('7')
563563

564564
if (options.uploadLengthDeferred) {
565-
expect(req.requestHeaders['Upload-Length']).toBe(11)
565+
expect(req.requestHeaders['Upload-Length']).toBe('11')
566566
}
567567

568568
expect(await getBodySize(req.body)).toBe(4)

0 commit comments

Comments
 (0)