@algolia/requester-fetch 5.7.0 → 5.8.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/createFetchRequester.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../src/createFetchRequester.ts"],"sourcesContent":["import type { Response as AlgoliaResponse, EndRequest, Requester } from '@algolia/client-common';\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof Error && error.name === 'AbortError';\n}\n\nfunction getErrorMessage(error: unknown, abortContent: string): string {\n if (isAbortError(error)) {\n return abortContent;\n }\n return error instanceof Error ? error.message : 'Network request failed';\n}\n\nexport type FetchRequesterOptions = {\n readonly requesterOptions?: RequestInit;\n};\n\nexport function createFetchRequester({ requesterOptions = {} }: FetchRequesterOptions = {}): Requester {\n async function send(request: EndRequest): Promise<AlgoliaResponse> {\n const abortController = new AbortController();\n const signal = abortController.signal;\n\n const createTimeout = (timeout: number): NodeJS.Timeout => {\n return setTimeout(() => {\n abortController.abort();\n }, timeout);\n };\n\n const connectTimeout = createTimeout(request.connectTimeout);\n\n let fetchRes: Response;\n try {\n fetchRes = await fetch(request.url, {\n method: request.method,\n body: request.data || null,\n redirect: 'manual',\n signal,\n ...requesterOptions,\n headers: {\n ...requesterOptions.headers,\n ...request.headers,\n },\n });\n } catch (error) {\n return {\n status: 0,\n content: getErrorMessage(error, 'Connection timeout'),\n isTimedOut: isAbortError(error),\n };\n }\n\n clearTimeout(connectTimeout);\n\n createTimeout(request.responseTimeout);\n\n try {\n const content = await fetchRes.text();\n\n return {\n content,\n isTimedOut: false,\n status: fetchRes.status,\n };\n } catch (error) {\n return {\n status: 0,\n content: getErrorMessage(error, 'Socket timeout'),\n isTimedOut: isAbortError(error),\n };\n }\n }\n\n return { send };\n}\n"],"mappings":"AAEA,SAASA,EAAaC,EAAyB,CAC7C,OAAOA,aAAiB,OAASA,EAAM,OAAS,YAClD,CAEA,SAASC,EAAgBD,EAAgBE,EAA8B,CACrE,OAAIH,EAAaC,CAAK,EACbE,EAEFF,aAAiB,MAAQA,EAAM,QAAU,wBAClD,CAMO,SAASG,EAAqB,CAAE,iBAAAC,EAAmB,CAAC,CAAE,EAA2B,CAAC,EAAc,CACrG,eAAeC,EAAKC,EAA+C,CACjE,IAAMC,EAAkB,IAAI,gBACtBC,EAASD,EAAgB,OAEzBE,EAAiBC,GACd,WAAW,IAAM,CACtBH,EAAgB,MAAM,CACxB,EAAGG,CAAO,EAGNC,EAAiBF,EAAcH,EAAQ,cAAc,EAEvDM,EACJ,GAAI,CACFA,EAAW,MAAM,MAAMN,EAAQ,IAAK,CAClC,OAAQA,EAAQ,OAChB,KAAMA,EAAQ,MAAQ,KACtB,SAAU,SACV,OAAAE,EACA,GAAGJ,EACH,QAAS,CACP,GAAGA,EAAiB,QACpB,GAAGE,EAAQ,OACb,CACF,CAAC,CACH,OAASN,EAAO,CACd,MAAO,CACL,OAAQ,EACR,QAASC,EAAgBD,EAAO,oBAAoB,EACpD,WAAYD,EAAaC,CAAK,CAChC,CACF,CAEA,aAAaW,CAAc,EAE3BF,EAAcH,EAAQ,eAAe,EAErC,GAAI,CAGF,MAAO,CACL,QAHc,MAAMM,EAAS,KAAK,EAIlC,WAAY,GACZ,OAAQA,EAAS,MACnB,CACF,OAASZ,EAAO,CACd,MAAO,CACL,OAAQ,EACR,QAASC,EAAgBD,EAAO,gBAAgB,EAChD,WAAYD,EAAaC,CAAK,CAChC,CACF,CACF,CAEA,MAAO,CAAE,KAAAK,CAAK,CAChB","names":["isAbortError","error","getErrorMessage","abortContent","createFetchRequester","requesterOptions","send","request","abortController","signal","createTimeout","timeout","connectTimeout","fetchRes"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../index.ts","../src/createFetchRequester.ts"],"sourcesContent":["export * from './src/createFetchRequester';\n","import type {
|
|
1
|
+
{"version":3,"sources":["../index.ts","../src/createFetchRequester.ts"],"sourcesContent":["export * from './src/createFetchRequester';\n","import type { Response as AlgoliaResponse, EndRequest, Requester } from '@algolia/client-common';\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof Error && error.name === 'AbortError';\n}\n\nfunction getErrorMessage(error: unknown, abortContent: string): string {\n if (isAbortError(error)) {\n return abortContent;\n }\n return error instanceof Error ? error.message : 'Network request failed';\n}\n\nexport type FetchRequesterOptions = {\n readonly requesterOptions?: RequestInit;\n};\n\nexport function createFetchRequester({ requesterOptions = {} }: FetchRequesterOptions = {}): Requester {\n async function send(request: EndRequest): Promise<AlgoliaResponse> {\n const abortController = new AbortController();\n const signal = abortController.signal;\n\n const createTimeout = (timeout: number): NodeJS.Timeout => {\n return setTimeout(() => {\n abortController.abort();\n }, timeout);\n };\n\n const connectTimeout = createTimeout(request.connectTimeout);\n\n let fetchRes: Response;\n try {\n fetchRes = await fetch(request.url, {\n method: request.method,\n body: request.data || null,\n redirect: 'manual',\n signal,\n ...requesterOptions,\n headers: {\n ...requesterOptions.headers,\n ...request.headers,\n },\n });\n } catch (error) {\n return {\n status: 0,\n content: getErrorMessage(error, 'Connection timeout'),\n isTimedOut: isAbortError(error),\n };\n }\n\n clearTimeout(connectTimeout);\n\n createTimeout(request.responseTimeout);\n\n try {\n const content = await fetchRes.text();\n\n return {\n content,\n isTimedOut: false,\n status: fetchRes.status,\n };\n } catch (error) {\n return {\n status: 0,\n content: getErrorMessage(error, 'Socket timeout'),\n isTimedOut: isAbortError(error),\n };\n }\n }\n\n return { send };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,SAAS,aAAa,OAAyB;AAC7C,SAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AAEA,SAAS,gBAAgB,OAAgB,cAA8B;AACrE,MAAI,aAAa,KAAK,GAAG;AACvB,WAAO;AAAA,EACT;AACA,SAAO,iBAAiB,QAAQ,MAAM,UAAU;AAClD;AAMO,SAAS,qBAAqB,EAAE,mBAAmB,CAAC,EAAE,IAA2B,CAAC,GAAc;AACrG,iBAAe,KAAK,SAA+C;AACjE,UAAM,kBAAkB,IAAI,gBAAgB;AAC5C,UAAM,SAAS,gBAAgB;AAE/B,UAAM,gBAAgB,CAAC,YAAoC;AACzD,aAAO,WAAW,MAAM;AACtB,wBAAgB,MAAM;AAAA,MACxB,GAAG,OAAO;AAAA,IACZ;AAEA,UAAM,iBAAiB,cAAc,QAAQ,cAAc;AAE3D,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,MAAM,QAAQ,KAAK;AAAA,QAClC,QAAQ,QAAQ;AAAA,QAChB,MAAM,QAAQ,QAAQ;AAAA,QACtB,UAAU;AAAA,QACV;AAAA,QACA,GAAG;AAAA,QACH,SAAS;AAAA,UACP,GAAG,iBAAiB;AAAA,UACpB,GAAG,QAAQ;AAAA,QACb;AAAA,MACF,CAAC;AAAA,IACH,SAAS,OAAO;AACd,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,SAAS,gBAAgB,OAAO,oBAAoB;AAAA,QACpD,YAAY,aAAa,KAAK;AAAA,MAChC;AAAA,IACF;AAEA,iBAAa,cAAc;AAE3B,kBAAc,QAAQ,eAAe;AAErC,QAAI;AACF,YAAM,UAAU,MAAM,SAAS,KAAK;AAEpC,aAAO;AAAA,QACL;AAAA,QACA,YAAY;AAAA,QACZ,QAAQ,SAAS;AAAA,MACnB;AAAA,IACF,SAAS,OAAO;AACd,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,SAAS,gBAAgB,OAAO,gBAAgB;AAAA,QAChD,YAAY,aAAa,KAAK;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,KAAK;AAChB;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/createFetchRequester.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../src/createFetchRequester.ts"],"sourcesContent":["import type { Response as AlgoliaResponse, EndRequest, Requester } from '@algolia/client-common';\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof Error && error.name === 'AbortError';\n}\n\nfunction getErrorMessage(error: unknown, abortContent: string): string {\n if (isAbortError(error)) {\n return abortContent;\n }\n return error instanceof Error ? error.message : 'Network request failed';\n}\n\nexport type FetchRequesterOptions = {\n readonly requesterOptions?: RequestInit;\n};\n\nexport function createFetchRequester({ requesterOptions = {} }: FetchRequesterOptions = {}): Requester {\n async function send(request: EndRequest): Promise<AlgoliaResponse> {\n const abortController = new AbortController();\n const signal = abortController.signal;\n\n const createTimeout = (timeout: number): NodeJS.Timeout => {\n return setTimeout(() => {\n abortController.abort();\n }, timeout);\n };\n\n const connectTimeout = createTimeout(request.connectTimeout);\n\n let fetchRes: Response;\n try {\n fetchRes = await fetch(request.url, {\n method: request.method,\n body: request.data || null,\n redirect: 'manual',\n signal,\n ...requesterOptions,\n headers: {\n ...requesterOptions.headers,\n ...request.headers,\n },\n });\n } catch (error) {\n return {\n status: 0,\n content: getErrorMessage(error, 'Connection timeout'),\n isTimedOut: isAbortError(error),\n };\n }\n\n clearTimeout(connectTimeout);\n\n createTimeout(request.responseTimeout);\n\n try {\n const content = await fetchRes.text();\n\n return {\n content,\n isTimedOut: false,\n status: fetchRes.status,\n };\n } catch (error) {\n return {\n status: 0,\n content: getErrorMessage(error, 'Socket timeout'),\n isTimedOut: isAbortError(error),\n };\n }\n }\n\n return { send };\n}\n"],"mappings":";AAEA,SAAS,aAAa,OAAyB;AAC7C,SAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AAEA,SAAS,gBAAgB,OAAgB,cAA8B;AACrE,MAAI,aAAa,KAAK,GAAG;AACvB,WAAO;AAAA,EACT;AACA,SAAO,iBAAiB,QAAQ,MAAM,UAAU;AAClD;AAMO,SAAS,qBAAqB,EAAE,mBAAmB,CAAC,EAAE,IAA2B,CAAC,GAAc;AACrG,iBAAe,KAAK,SAA+C;AACjE,UAAM,kBAAkB,IAAI,gBAAgB;AAC5C,UAAM,SAAS,gBAAgB;AAE/B,UAAM,gBAAgB,CAAC,YAAoC;AACzD,aAAO,WAAW,MAAM;AACtB,wBAAgB,MAAM;AAAA,MACxB,GAAG,OAAO;AAAA,IACZ;AAEA,UAAM,iBAAiB,cAAc,QAAQ,cAAc;AAE3D,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,MAAM,QAAQ,KAAK;AAAA,QAClC,QAAQ,QAAQ;AAAA,QAChB,MAAM,QAAQ,QAAQ;AAAA,QACtB,UAAU;AAAA,QACV;AAAA,QACA,GAAG;AAAA,QACH,SAAS;AAAA,UACP,GAAG,iBAAiB;AAAA,UACpB,GAAG,QAAQ;AAAA,QACb;AAAA,MACF,CAAC;AAAA,IACH,SAAS,OAAO;AACd,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,SAAS,gBAAgB,OAAO,oBAAoB;AAAA,QACpD,YAAY,aAAa,KAAK;AAAA,MAChC;AAAA,IACF;AAEA,iBAAa,cAAc;AAE3B,kBAAc,QAAQ,eAAe;AAErC,QAAI;AACF,YAAM,UAAU,MAAM,SAAS,KAAK;AAEpC,aAAO;AAAA,QACL;AAAA,QACA,YAAY;AAAA,QACZ,QAAQ,SAAS;AAAA,MACnB;AAAA,IACF,SAAS,OAAO;AACd,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,SAAS,gBAAgB,OAAO,gBAAgB;AAAA,QAChD,YAAY,aAAa,KAAK;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,KAAK;AAChB;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@algolia/requester-fetch",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.8.0",
|
|
4
4
|
"description": "Promise-based request library using Fetch.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"test:bundle": "publint . && attw --pack ."
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@algolia/client-common": "5.
|
|
50
|
+
"@algolia/client-common": "5.8.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@arethetypeswrong/cli": "0.16.4",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"publint": "0.2.11",
|
|
58
58
|
"tsup": "8.3.0",
|
|
59
59
|
"typescript": "5.6.2",
|
|
60
|
-
"vitest": "2.1.
|
|
60
|
+
"vitest": "2.1.2"
|
|
61
61
|
},
|
|
62
62
|
"engines": {
|
|
63
63
|
"node": ">= 14.0.0"
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
+
import crossFetch from 'cross-fetch';
|
|
1
2
|
import type http from 'http';
|
|
3
|
+
import nock from 'nock';
|
|
2
4
|
import { Readable } from 'stream';
|
|
5
|
+
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, test } from 'vitest';
|
|
3
6
|
|
|
4
7
|
import type { EndRequest } from '@algolia/client-common';
|
|
5
|
-
import crossFetch from 'cross-fetch';
|
|
6
|
-
import nock from 'nock';
|
|
7
|
-
import { describe, test, beforeAll, afterAll, beforeEach, afterEach, expect } from 'vitest';
|
|
8
8
|
|
|
9
9
|
import { createFetchRequester } from '../..';
|
|
10
10
|
import {
|
|
11
|
+
createTestServer,
|
|
12
|
+
getStringifiedBody,
|
|
11
13
|
headers,
|
|
12
|
-
timeoutRequest,
|
|
13
14
|
requestStub,
|
|
14
|
-
testQueryHeader,
|
|
15
15
|
testQueryBaseUrl,
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
testQueryHeader,
|
|
17
|
+
timeoutRequest,
|
|
18
18
|
} from '../../../../tests/utils';
|
|
19
19
|
|
|
20
20
|
const originalFetch = window.fetch;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Response as AlgoliaResponse, EndRequest, Requester } from '@algolia/client-common';
|
|
2
2
|
|
|
3
3
|
function isAbortError(error: unknown): boolean {
|
|
4
4
|
return error instanceof Error && error.name === 'AbortError';
|