defaultOptionsValidator-CXwrNjme.cjs.map 3.3 KB

1
  1. {"version":3,"file":"defaultOptionsValidator-CXwrNjme.cjs","sources":["../../src/middleware/defaultOptionsProcessor.ts","../../src/middleware/defaultOptionsValidator.ts"],"sourcesContent":["import type {MiddlewareHooks, RequestOptions} from '../types'\n\nconst isReactNative = typeof navigator === 'undefined' ? false : navigator.product === 'ReactNative'\n\nconst defaultOptions = {timeout: isReactNative ? 60000 : 120000} satisfies Partial<RequestOptions>\n\n/** @public */\nexport const processOptions = function processOptions(opts) {\n const options = {\n ...defaultOptions,\n ...(typeof opts === 'string' ? {url: opts} : opts),\n } satisfies RequestOptions\n\n // Allow parsing relative URLs by setting the origin to `http://localhost`\n const {searchParams} = new URL(options.url, 'http://localhost')\n\n // Normalize timeouts\n options.timeout = normalizeTimeout(options.timeout)\n\n // Shallow-merge (override) existing query params\n if (options.query) {\n for (const [key, value] of Object.entries(options.query)) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n for (const v of value) {\n searchParams.append(key, v as string)\n }\n } else {\n searchParams.append(key, value as string)\n }\n }\n }\n }\n // Merge back params into url\n const [url] = options.url.split('?')\n const search = searchParams.toString()\n if (search) {\n options.url = `${url}?${search}`\n }\n\n // Implicit POST if we have not specified a method but have a body\n options.method =\n options.body && !options.method ? 'POST' : (options.method || 'GET').toUpperCase()\n\n return options\n} satisfies MiddlewareHooks['processOptions']\n\nfunction normalizeTimeout(time: RequestOptions['timeout']) {\n if (time === false || time === 0) {\n return false\n }\n\n if (time.connect || time.socket) {\n return time\n }\n\n const delay = Number(time)\n if (isNaN(delay)) {\n return normalizeTimeout(defaultOptions.timeout)\n }\n\n return {connect: delay, socket: delay}\n}\n","import type {MiddlewareHooks} from '../types'\n\nconst validUrl = /^https?:\\/\\//i\n\n/** @public */\nexport const validateOptions = function validateOptions(options) {\n if (!validUrl.test(options.url)) {\n throw new Error(`\"${options.url}\" is not a valid URL`)\n }\n} satisfies MiddlewareHooks['validateOptions']\n"],"names":[],"mappings":";AAEA,MAAM,gBAAgB,OAAO,YAAc,MAAc,KAAQ,UAAU,YAAY,eAEjF,iBAAiB,EAAC,SAAS,gBAAgB,MAAQ,KAAM,GAGlD,iBAAiB,SAAwB,MAAM;AAC1D,QAAM,UAAU;AAAA,IACd,GAAG;AAAA,IACH,GAAI,OAAO,QAAS,WAAW,EAAC,KAAK,KAAQ,IAAA;AAAA,EAAA,GAIzC,EAAC,aAAY,IAAI,IAAI,IAAI,QAAQ,KAAK,kBAAkB;AAM9D,MAHA,QAAQ,UAAU,iBAAiB,QAAQ,OAAO,GAG9C,QAAQ;AACV,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,QAAQ,KAAK;AACrD,UAAI,UAAU;AACR,YAAA,MAAM,QAAQ,KAAK;AACrB,qBAAW,KAAK;AACD,yBAAA,OAAO,KAAK,CAAW;AAAA;AAGzB,uBAAA,OAAO,KAAK,KAAe;AAAA;AAM1C,QAAA,CAAC,GAAG,IAAI,QAAQ,IAAI,MAAM,GAAG,GAC7B,SAAS,aAAa;AACxB,SAAA,WACF,QAAQ,MAAM,GAAG,GAAG,IAAI,MAAM,KAIhC,QAAQ,SACN,QAAQ,QAAQ,CAAC,QAAQ,SAAS,UAAU,QAAQ,UAAU,OAAO,YAEhE,GAAA;AACT;AAEA,SAAS,iBAAiB,MAAiC;AACrD,MAAA,SAAS,MAAS,SAAS;AACtB,WAAA;AAGL,MAAA,KAAK,WAAW,KAAK;AAChB,WAAA;AAGH,QAAA,QAAQ,OAAO,IAAI;AACrB,SAAA,MAAM,KAAK,IACN,iBAAiB,eAAe,OAAO,IAGzC,EAAC,SAAS,OAAO,QAAQ,MAAK;AACvC;AC5DA,MAAM,WAAW,iBAGJ,kBAAkB,SAAyB,SAAS;AAC/D,MAAI,CAAC,SAAS,KAAK,QAAQ,GAAG;AAC5B,UAAM,IAAI,MAAM,IAAI,QAAQ,GAAG,sBAAsB;AAEzD;;;"}