@@ -28,6 +28,10 @@ interface SuperHeadersPropertyInit {
28
28
* The [`Accept-Language`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language) header value.
29
29
*/
30
30
acceptLanguage ?: string | AcceptLanguageInit ;
31
+ /**
32
+ * The [`Accept-Ranges`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Ranges) header value.
33
+ */
34
+ acceptRanges ?: string ;
31
35
/**
32
36
* The [`Age`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Age) header value.
33
37
*/
@@ -36,6 +40,10 @@ interface SuperHeadersPropertyInit {
36
40
* The [`Cache-Control`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control) header value.
37
41
*/
38
42
cacheControl ?: string | CacheControlInit ;
43
+ /**
44
+ * The [`Connection`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Connection) header value.
45
+ */
46
+ connection ?: string ;
39
47
/**
40
48
* The [`Content-Disposition`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) header value.
41
49
*/
@@ -60,6 +68,10 @@ interface SuperHeadersPropertyInit {
60
68
* The [`Expires`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expires) header value.
61
69
*/
62
70
expires ?: string | DateInit ;
71
+ /**
72
+ * The [`Host`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host) header value.
73
+ */
74
+ host ?: string ;
63
75
/**
64
76
* The [`If-Modified-Since`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since) header value.
65
77
*/
@@ -72,6 +84,10 @@ interface SuperHeadersPropertyInit {
72
84
* The [`Last-Modified`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified) header value.
73
85
*/
74
86
lastModified ?: string | DateInit ;
87
+ /**
88
+ * The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) header value.
89
+ */
90
+ referer ?: string ;
75
91
/**
76
92
* The [`Set-Cookie`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) header value(s).
77
93
*/
@@ -115,15 +131,11 @@ export class SuperHeaders extends Headers {
115
131
for ( let name of Object . getOwnPropertyNames ( init ) ) {
116
132
let value = init [ name ] ;
117
133
118
- if ( typeof value === 'string' ) {
119
- this . set ( name , value ) ;
134
+ let descriptor = Object . getOwnPropertyDescriptor ( SuperHeaders . prototype , name ) ;
135
+ if ( descriptor ?. set ) {
136
+ descriptor . set . call ( this , value ) ;
120
137
} else {
121
- let descriptor = Object . getOwnPropertyDescriptor ( SuperHeaders . prototype , name ) ;
122
- if ( descriptor ?. set ) {
123
- descriptor . set . call ( this , value ) ;
124
- } else {
125
- this . set ( name , value . toString ( ) ) ;
126
- }
138
+ this . set ( name , value . toString ( ) ) ;
127
139
}
128
140
}
129
141
}
@@ -346,6 +358,21 @@ export class SuperHeaders extends Headers {
346
358
this . #setHeaderValue( 'accept-language' , AcceptLanguage , value ) ;
347
359
}
348
360
361
+ /**
362
+ * The `Accept-Ranges` header indicates the server's acceptance of range requests.
363
+ *
364
+ * [MDN `Accept-Ranges` Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Ranges)
365
+ *
366
+ * [HTTP/1.1 Specification](https://datatracker.ietf.org/doc/html/rfc7233#section-2.3)
367
+ */
368
+ get acceptRanges ( ) : string | null {
369
+ return this . get ( 'accept-ranges' ) ;
370
+ }
371
+
372
+ set acceptRanges ( value : string | undefined | null ) {
373
+ this . #setValue( 'accept-ranges' , value ) ;
374
+ }
375
+
349
376
/**
350
377
* The `Age` header contains the time in seconds an object was in a proxy cache.
351
378
*
0 commit comments