@algolia/requester-fetch
Advanced tools
@@ -1,2 +0,2 @@ | ||
| function s(e){return e instanceof Error&&e.name==="AbortError"}function u(e,o){return s(e)?o:e instanceof Error?e.message:"Network request failed"}function l({requesterOptions:e={}}={}){async function o(n){let i=new AbortController,c=i.signal,a=t=>setTimeout(()=>{i.abort()},t),m=a(n.connectTimeout),r;try{r=await fetch(n.url,{method:n.method,body:n.data||null,redirect:"manual",signal:c,...e,headers:{...e.headers,...n.headers}})}catch(t){return{status:0,content:u(t,"Connection timeout"),isTimedOut:s(t)}}clearTimeout(m),a(n.responseTimeout);try{return{content:await r.text(),isTimedOut:!1,status:r.status}}catch(t){return{status:0,content:u(t,"Socket timeout"),isTimedOut:s(t)}}}return{send:o}}export{l as createFetchRequester}; | ||
| function i(t){return t instanceof Error&&t.name==="AbortError"}function u(t,r){return i(t)?r:t instanceof Error?t.message:"Network request failed"}function m({requesterOptions:t={}}={}){async function r(e){let n=new AbortController,s=n.signal,c=o=>setTimeout(()=>{n.abort()},o),l=c(e.connectTimeout),a;try{a=await fetch(e.url,{method:e.method,body:e.data||null,redirect:"manual",signal:s,...t,headers:{...t.headers,...e.headers}})}catch(o){return{status:0,content:u(o,"Connection timeout"),isTimedOut:i(o)}}clearTimeout(l),c(e.responseTimeout);try{return{content:await a.text(),isTimedOut:!1,status:a.status}}catch(o){return{status:0,content:u(o,"Socket timeout"),isTimedOut:i(o)}}}async function d(e){let n=await fetch(e.url,{method:e.method,body:e.data||null,redirect:"manual",...t,headers:{...t.headers,...e.headers}});if(!n.ok){let s=await n.text();throw new Error(`HTTP ${n.status}: ${s}`)}if(n.body===null)throw new Error("Response body is null \u2014 streaming not supported");return n.body}return{send:r,sendStream:d}}export{m as createFetchRequester}; | ||
| //# sourceMappingURL=requester.fetch.browser.js.map |
@@ -1,1 +0,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 | undefined;\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 as BodyInit) || 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,KAAOA,EAAQ,MAAqB,KACpC,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"]} | ||
| {"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 | undefined;\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 as BodyInit) || 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 async function sendStream(request: EndRequest): Promise<ReadableStream<Uint8Array>> {\n const fetchRes = await fetch(request.url, {\n method: request.method,\n body: (request.data as BodyInit) || null,\n redirect: 'manual',\n ...requesterOptions,\n headers: {\n ...requesterOptions.headers,\n ...request.headers,\n },\n });\n\n if (!fetchRes.ok) {\n const text = await fetchRes.text();\n throw new Error(`HTTP ${fetchRes.status}: ${text}`);\n }\n\n if (fetchRes.body === null) {\n throw new Error('Response body is null — streaming not supported');\n }\n\n return fetchRes.body;\n }\n\n return { send, sendStream };\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,KAAOA,EAAQ,MAAqB,KACpC,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,eAAea,EAAWP,EAA0D,CAClF,IAAMM,EAAW,MAAM,MAAMN,EAAQ,IAAK,CACxC,OAAQA,EAAQ,OAChB,KAAOA,EAAQ,MAAqB,KACpC,SAAU,SACV,GAAGF,EACH,QAAS,CACP,GAAGA,EAAiB,QACpB,GAAGE,EAAQ,OACb,CACF,CAAC,EAED,GAAI,CAACM,EAAS,GAAI,CAChB,IAAME,EAAO,MAAMF,EAAS,KAAK,EACjC,MAAM,IAAI,MAAM,QAAQA,EAAS,MAAM,KAAKE,CAAI,EAAE,CACpD,CAEA,GAAIF,EAAS,OAAS,KACpB,MAAM,IAAI,MAAM,sDAAiD,EAGnE,OAAOA,EAAS,IAClB,CAEA,MAAO,CAAE,KAAAP,EAAM,WAAAQ,CAAW,CAC5B","names":["isAbortError","error","getErrorMessage","abortContent","createFetchRequester","requesterOptions","send","request","abortController","signal","createTimeout","timeout","connectTimeout","fetchRes","sendStream","text"]} |
@@ -84,3 +84,23 @@ "use strict"; | ||
| } | ||
| return { send }; | ||
| async function sendStream(request) { | ||
| const fetchRes = await fetch(request.url, { | ||
| method: request.method, | ||
| body: request.data || null, | ||
| redirect: "manual", | ||
| ...requesterOptions, | ||
| headers: { | ||
| ...requesterOptions.headers, | ||
| ...request.headers | ||
| } | ||
| }); | ||
| if (!fetchRes.ok) { | ||
| const text = await fetchRes.text(); | ||
| throw new Error(`HTTP ${fetchRes.status}: ${text}`); | ||
| } | ||
| if (fetchRes.body === null) { | ||
| throw new Error("Response body is null \u2014 streaming not supported"); | ||
| } | ||
| return fetchRes.body; | ||
| } | ||
| return { send, sendStream }; | ||
| } | ||
@@ -87,0 +107,0 @@ // Annotate the CommonJS export names for ESM import in node: |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/index.ts","../src/createFetchRequester.ts"],"sourcesContent":["export * from './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 | undefined;\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 as BodyInit) || 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,MAAO,QAAQ,QAAqB;AAAA,QACpC,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":[]} | ||
| {"version":3,"sources":["../src/index.ts","../src/createFetchRequester.ts"],"sourcesContent":["export * from './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 | undefined;\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 as BodyInit) || 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 async function sendStream(request: EndRequest): Promise<ReadableStream<Uint8Array>> {\n const fetchRes = await fetch(request.url, {\n method: request.method,\n body: (request.data as BodyInit) || null,\n redirect: 'manual',\n ...requesterOptions,\n headers: {\n ...requesterOptions.headers,\n ...request.headers,\n },\n });\n\n if (!fetchRes.ok) {\n const text = await fetchRes.text();\n throw new Error(`HTTP ${fetchRes.status}: ${text}`);\n }\n\n if (fetchRes.body === null) {\n throw new Error('Response body is null — streaming not supported');\n }\n\n return fetchRes.body;\n }\n\n return { send, sendStream };\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,MAAO,QAAQ,QAAqB;AAAA,QACpC,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,iBAAe,WAAW,SAA0D;AAClF,UAAM,WAAW,MAAM,MAAM,QAAQ,KAAK;AAAA,MACxC,QAAQ,QAAQ;AAAA,MAChB,MAAO,QAAQ,QAAqB;AAAA,MACpC,UAAU;AAAA,MACV,GAAG;AAAA,MACH,SAAS;AAAA,QACP,GAAG,iBAAiB;AAAA,QACpB,GAAG,QAAQ;AAAA,MACb;AAAA,IACF,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,YAAM,IAAI,MAAM,QAAQ,SAAS,MAAM,KAAK,IAAI,EAAE;AAAA,IACpD;AAEA,QAAI,SAAS,SAAS,MAAM;AAC1B,YAAM,IAAI,MAAM,sDAAiD;AAAA,IACnE;AAEA,WAAO,SAAS;AAAA,EAClB;AAEA,SAAO,EAAE,MAAM,WAAW;AAC5B;","names":[]} |
@@ -58,3 +58,23 @@ // src/createFetchRequester.ts | ||
| } | ||
| return { send }; | ||
| async function sendStream(request) { | ||
| const fetchRes = await fetch(request.url, { | ||
| method: request.method, | ||
| body: request.data || null, | ||
| redirect: "manual", | ||
| ...requesterOptions, | ||
| headers: { | ||
| ...requesterOptions.headers, | ||
| ...request.headers | ||
| } | ||
| }); | ||
| if (!fetchRes.ok) { | ||
| const text = await fetchRes.text(); | ||
| throw new Error(`HTTP ${fetchRes.status}: ${text}`); | ||
| } | ||
| if (fetchRes.body === null) { | ||
| throw new Error("Response body is null \u2014 streaming not supported"); | ||
| } | ||
| return fetchRes.body; | ||
| } | ||
| return { send, sendStream }; | ||
| } | ||
@@ -61,0 +81,0 @@ export { |
@@ -1,1 +0,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 | undefined;\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 as BodyInit) || 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,MAAO,QAAQ,QAAqB;AAAA,QACpC,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":[]} | ||
| {"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 | undefined;\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 as BodyInit) || 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 async function sendStream(request: EndRequest): Promise<ReadableStream<Uint8Array>> {\n const fetchRes = await fetch(request.url, {\n method: request.method,\n body: (request.data as BodyInit) || null,\n redirect: 'manual',\n ...requesterOptions,\n headers: {\n ...requesterOptions.headers,\n ...request.headers,\n },\n });\n\n if (!fetchRes.ok) {\n const text = await fetchRes.text();\n throw new Error(`HTTP ${fetchRes.status}: ${text}`);\n }\n\n if (fetchRes.body === null) {\n throw new Error('Response body is null — streaming not supported');\n }\n\n return fetchRes.body;\n }\n\n return { send, sendStream };\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,MAAO,QAAQ,QAAqB;AAAA,QACpC,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,iBAAe,WAAW,SAA0D;AAClF,UAAM,WAAW,MAAM,MAAM,QAAQ,KAAK;AAAA,MACxC,QAAQ,QAAQ;AAAA,MAChB,MAAO,QAAQ,QAAqB;AAAA,MACpC,UAAU;AAAA,MACV,GAAG;AAAA,MACH,SAAS;AAAA,QACP,GAAG,iBAAiB;AAAA,QACpB,GAAG,QAAQ;AAAA,MACb;AAAA,IACF,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,YAAM,IAAI,MAAM,QAAQ,SAAS,MAAM,KAAK,IAAI,EAAE;AAAA,IACpD;AAEA,QAAI,SAAS,SAAS,MAAM;AAC1B,YAAM,IAAI,MAAM,sDAAiD;AAAA,IACnE;AAEA,WAAO,SAAS;AAAA,EAClB;AAEA,SAAO,EAAE,MAAM,WAAW;AAC5B;","names":[]} |
+3
-3
| { | ||
| "name": "@algolia/requester-fetch", | ||
| "version": "5.53.0", | ||
| "version": "5.54.0", | ||
| "description": "Promise-based request library using Fetch.", | ||
@@ -51,3 +51,3 @@ "repository": { | ||
| "dependencies": { | ||
| "@algolia/client-common": "5.53.0" | ||
| "@algolia/client-common": "5.54.0" | ||
| }, | ||
@@ -67,3 +67,3 @@ "devDependencies": { | ||
| }, | ||
| "gitHead": "2658999ce3f428dfc8cab8e4946de263030245ba" | ||
| "gitHead": "b2006b248e1ed1a94168391b649d0ec897cd8812" | ||
| } |
23956
25.27%207
24.7%6
100%+ Added
- Removed