UNPKG

@zhengxs/http

Version:

A lightweight cross-platform http request library

1 lines 3.18 kB
{"version":3,"file":"nodenext.mjs","sources":["../../src/_shims/node20-runtime.ts","../../src/shims/nodenext.ts"],"sourcesContent":["import { ReadStream as FsReadStream } from 'node:fs';\nimport { type Agent } from 'node:http';\nimport { Readable } from 'node:stream';\nimport { ReadableStream } from 'node:stream/web';\n\nimport KeepAliveAgent from 'agentkeepalive';\nimport { FormDataEncoder } from 'form-data-encoder';\n\nimport { type RequestOptions } from '../types';\nimport { MultipartBody } from './MultipartBody';\nimport { type Shims } from './registry';\n\nconst defaultHttpAgent: Agent = new KeepAliveAgent({\n keepAlive: true,\n timeout: 5 * 60 * 1000,\n});\nconst defaultHttpsAgent: Agent = new KeepAliveAgent.HttpsAgent({\n keepAlive: true,\n timeout: 5 * 60 * 1000,\n});\n\nasync function getMultipartRequestOptions<\n T extends NonNullable<unknown> = Record<string, unknown>,\n>(\n form: globalThis.FormData,\n opts: RequestOptions<T>,\n): Promise<RequestOptions<T>> {\n const encoder = new FormDataEncoder(form);\n const readable = Readable.from(encoder);\n const body = new MultipartBody(readable);\n\n const headers = {\n ...opts.headers,\n ...encoder.headers,\n 'Content-Length': encoder.contentLength,\n };\n\n return { ...opts, body: body as any, headers };\n}\n\nexport function getRuntime(): Shims {\n return {\n kind: 'node',\n getMultipartRequestOptions,\n getDefaultAgent: (url: string): Agent =>\n url.startsWith('https') ? defaultHttpsAgent : defaultHttpAgent,\n isFsReadStream: (value: any): value is FsReadStream =>\n value instanceof FsReadStream,\n\n // Added in: v16.15.0\n fetch: globalThis.fetch,\n Request: globalThis.Request,\n Response: globalThis.Response,\n Headers: globalThis.Headers,\n FormData: globalThis.FormData,\n\n // Added in: v18.0.0\n Blob: globalThis.Blob,\n ReadableStream,\n\n // Added in: v20.0.0\n File: globalThis.File,\n };\n}\n","import { getRuntime } from '../_shims/node20-runtime';\nimport { setShims } from '../_shims/registry';\n\nsetShims(getRuntime());\n"],"names":["defaultHttpAgent","KeepAliveAgent","defaultHttpsAgent","getMultipartRequestOptions","form","opts","encoder","FormDataEncoder","readable","Readable","body","MultipartBody","headers","getRuntime","url","value","FsReadStream","ReadableStream","setShims"],"mappings":";;;;;;;;AAYA,MAAMA,IAA0B,IAAIC,EAAe;AAAA,EACjD,WAAW;AAAA,EACX,SAAS,IAAI,KAAK;AACpB,CAAC,GACKC,IAA2B,IAAID,EAAe,WAAW;AAAA,EAC7D,WAAW;AAAA,EACX,SAAS,IAAI,KAAK;AACpB,CAAC;AAED,eAAeE,EAGbC,GACAC,GAC4B;AACtB,QAAAC,IAAU,IAAIC,EAAgBH,CAAI,GAClCI,IAAWC,EAAS,KAAKH,CAAO,GAChCI,IAAO,IAAIC,EAAcH,CAAQ,GAEjCI,IAAU;AAAA,IACd,GAAGP,EAAK;AAAA,IACR,GAAGC,EAAQ;AAAA,IACX,kBAAkBA,EAAQ;AAAA,EAAA;AAG5B,SAAO,EAAE,GAAGD,GAAM,MAAAK,GAAmB,SAAAE,EAAQ;AAC/C;AAEO,SAASC,IAAoB;AAC3B,SAAA;AAAA,IACL,MAAM;AAAA,IACN,4BAAAV;AAAA,IACA,iBAAiB,CAACW,MAChBA,EAAI,WAAW,OAAO,IAAIZ,IAAoBF;AAAA,IAChD,gBAAgB,CAACe,MACfA,aAAiBC;AAAAA;AAAAA,IAGnB,OAAO,WAAW;AAAA,IAClB,SAAS,WAAW;AAAA,IACpB,UAAU,WAAW;AAAA,IACrB,SAAS,WAAW;AAAA,IACpB,UAAU,WAAW;AAAA;AAAA,IAGrB,MAAM,WAAW;AAAA,IACjB,gBAAAC;AAAA;AAAA,IAGA,MAAM,WAAW;AAAA,EAAA;AAErB;AC5DAC,EAASL,GAAY;"}