@chunkd/source-http 11.0.1 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ describe('SourceHttp', () => {
7
7
  before(() => {
8
8
  // Fake fetch that returns the number of the byte that was requested
9
9
  SourceHttp.fetch = (_, obj) => {
10
- const rangeHeader = obj?.headers?.Range;
10
+ const rangeHeader = obj?.headers?.range;
11
11
  if (rangeHeader == null)
12
12
  throw new Error('No headers');
13
13
  const [startByte, endByte] = rangeHeader
@@ -20,7 +20,8 @@ export declare function getMetadataFromResponse(response: FetchLikeResponse): So
20
20
  export declare class SourceHttp implements Source {
21
21
  type: string;
22
22
  url: URL;
23
- constructor(url: URL | string);
23
+ headers?: Record<string, string>;
24
+ constructor(url: URL | string, headers?: Record<string, string>);
24
25
  /** Attempt to parse a relative string into a URL */
25
26
  static tryUrl(s: string): URL;
26
27
  /** Optional metadata, only populated if a .head() or .fetchBytes() has already been returned */
@@ -11,9 +11,10 @@ export function getMetadataFromResponse(response) {
11
11
  return metadata;
12
12
  }
13
13
  export class SourceHttp {
14
- constructor(url) {
14
+ constructor(url, headers) {
15
15
  this.type = 'http';
16
16
  this.url = typeof url === 'string' ? SourceHttp.tryUrl(url) : url;
17
+ this.headers = headers;
17
18
  }
18
19
  /** Attempt to parse a relative string into a URL */
19
20
  static tryUrl(s) {
@@ -30,7 +31,7 @@ export class SourceHttp {
30
31
  head() {
31
32
  if (this._head)
32
33
  return this._head;
33
- this._head = SourceHttp.fetch(this.url, { method: 'HEAD' }).then((res) => {
34
+ this._head = SourceHttp.fetch(this.url, { method: 'HEAD', headers: this.headers }).then((res) => {
34
35
  if (!res.ok) {
35
36
  delete this._head;
36
37
  throw new Error(`Failed to HEAD ${this.url}`, { cause: { statusCode: res.status, msg: res.statusText } });
@@ -42,11 +43,10 @@ export class SourceHttp {
42
43
  }
43
44
  async fetch(offset, length) {
44
45
  try {
45
- const Range = ContentRange.toRange(offset, length);
46
- const headers = { Range };
46
+ const headers = { range: ContentRange.toRange(offset, length), ...this.headers };
47
47
  const response = await SourceHttp.fetch(this.url, { headers });
48
48
  if (!response.ok) {
49
- throw new SourceError(`Failed to fetch ${this.url} ${Range}`, response.status, this, new Error(response.statusText));
49
+ throw new SourceError(`Failed to fetch ${this.url} ${headers.range}`, response.status, this, new Error(response.statusText));
50
50
  }
51
51
  const metadata = getMetadataFromResponse(response);
52
52
  if (this.metadata == null) {
@@ -54,7 +54,7 @@ export class SourceHttp {
54
54
  }
55
55
  else if (this.metadata.eTag && this.metadata.eTag !== metadata.eTag) {
56
56
  // ETag has changed since the last read!
57
- throw new SourceError(`ETag conflict ${this.url} ${Range} expected: ${this.metadata.eTag} got: ${metadata.eTag}`, 409, this);
57
+ throw new SourceError(`ETag conflict ${this.url} ${headers.range} expected: ${this.metadata.eTag} got: ${metadata.eTag}`, 409, this);
58
58
  }
59
59
  return response.arrayBuffer();
60
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chunkd/source-http",
3
- "version": "11.0.1",
3
+ "version": "11.1.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=18.0.0"
@@ -18,7 +18,7 @@
18
18
  "test": "node --test"
19
19
  },
20
20
  "dependencies": {
21
- "@chunkd/source": "^11.0.0"
21
+ "@chunkd/source": "^11.1.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^18.16.19"
@@ -29,5 +29,5 @@
29
29
  "files": [
30
30
  "build/src"
31
31
  ],
32
- "gitHead": "83869d7cce2dc49011b136d28cb83f023b4443e6"
32
+ "gitHead": "a5d7bdd97c1ce298897f24cbc4d1c6ff41ab7ece"
33
33
  }