{"version":3,"file":"request.cjs","names":["extractData","result: { response: unknown; message: string; errors: any; data?: any }"],"sources":["../../src/utils/request.ts"],"sourcesContent":["import type { FetchInterface } from '../index.js';\nimport { extractData } from './extract-data.js';\n\n/**\n * Request helper providing default settings\n *\n * @param url The request URL\n * @param options The request options\n *\n * @returns The API result if successful\n */\nexport const request = async <Output = any>(\n\turl: string,\n\toptions: RequestInit,\n\tfetcher: FetchInterface = globalThis.fetch,\n): Promise<Output> => {\n\toptions.headers =\n\t\ttypeof options.headers === 'object' && !Array.isArray(options.headers)\n\t\t\t? (options.headers as Record<string, string>)\n\t\t\t: {};\n\n\treturn fetcher(url, options).then((response) => {\n\t\treturn extractData(response).catch((reason) => {\n\t\t\tconst result: { response: unknown; message: string; errors: any; data?: any } = {\n\t\t\t\tmessage: '',\n\t\t\t\terrors: reason && typeof reason === 'object' && 'errors' in reason ? reason.errors : reason,\n\t\t\t\tresponse,\n\t\t\t};\n\n\t\t\tif (reason && typeof reason === 'object' && 'data' in reason) result.data = reason.data;\n\n\t\t\tif (Array.isArray(result.errors) && result.errors[0]?.message) {\n\t\t\t\tresult.message = result.errors[0].message;\n\t\t\t}\n\n\t\t\treturn Promise.reject(result);\n\t\t});\n\t});\n};\n"],"mappings":"sCAWa,EAAU,MACtB,EACA,EACA,EAA0B,WAAW,SAErC,EAAQ,QACP,OAAO,EAAQ,SAAY,UAAY,CAAC,MAAM,QAAQ,EAAQ,QAAQ,CAClE,EAAQ,QACT,EAAE,CAEC,EAAQ,EAAK,EAAQ,CAAC,KAAM,GAC3BA,EAAAA,YAAY,EAAS,CAAC,MAAO,GAAW,CAC9C,IAAMC,EAA0E,CAC/E,QAAS,GACT,OAAQ,GAAU,OAAO,GAAW,UAAY,WAAY,EAAS,EAAO,OAAS,EACrF,WACA,CAQD,OANI,GAAU,OAAO,GAAW,UAAY,SAAU,IAAQ,EAAO,KAAO,EAAO,MAE/E,MAAM,QAAQ,EAAO,OAAO,EAAI,EAAO,OAAO,IAAI,UACrD,EAAO,QAAU,EAAO,OAAO,GAAG,SAG5B,QAAQ,OAAO,EAAO,EAC5B,CACD"}