UNPKG

@harboor/auth-sdk-js

Version:
1 lines 7.77 kB
{"version":3,"file":"index.cjs","sources":["../src/http-client.ts","../src/util.ts","../src/index.generated.ts"],"sourcesContent":["import axios, { type AxiosInstance, type AxiosRequestConfig } from \"axios\";\n\nexport interface SdkRequestOptions {\n sdkMinTimeThreshold?: number;\n}\n\nexport const client: AxiosInstance = axios.create();\n\nconst requestOptionsProps = [\"sdkMinTimeThreshold\"];\n\nexport async function processHttpRequest(\n method: string,\n url: string,\n requestOptions?: Partial<AxiosRequestConfig> & SdkRequestOptions,\n) {\n const minTimeThreshold = requestOptions?.sdkMinTimeThreshold ?? 0;\n const startTime = minTimeThreshold > 0 ? Date.now() : 0;\n const axiosOptions = requestOptions\n ? Object.keys(requestOptions)\n .filter((prop) => !requestOptionsProps.includes(prop))\n .reduce(\n (memo, prop) =>\n Object.assign({}, memo, { [prop]: requestOptions[prop as keyof typeof requestOptions] }),\n {},\n )\n : {};\n const config: AxiosRequestConfig = Object.assign({}, axiosOptions ?? {}, {\n method,\n url,\n });\n\n try {\n const response = await client(config);\n\n if (minTimeThreshold > 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime < minTimeThreshold) {\n const remainingTime = minTimeThreshold - elapsedTime;\n await new Promise((resolve) => setTimeout(resolve, remainingTime));\n }\n }\n\n return response.data;\n } catch (error) {\n if (error.response) {\n // the server responded with a status that fails in validateStatus\n return error.response.data;\n } else if (error.request) {\n // no response received, error.request is an instance of XMLHttpRequest\n console.error(error);\n return { error: { code: \"no_response\" } };\n } else {\n // request setup is incorrect\n console.error(error);\n return { error: { code: \"invalid_request_setup\", message: error.message } };\n }\n }\n}\n","export interface Util {\n formDataToJson: <T extends object>(formData: FormData) => T;\n}\n\nexport const util: Util = {\n formDataToJson,\n};\n\nfunction formDataToJson<T extends object>(formData: FormData) {\n const json: Record<string, unknown> = {};\n for (const pair of formData.entries()) {\n const k = pair[0] as string;\n\n if (k in json) {\n if (!Array.isArray(json[k])) {\n json[k] = [json[k]];\n }\n\n (json[k] as unknown[]).push(pair[1]);\n } else {\n json[k] = pair[1];\n }\n }\n return json as T;\n}\n","import { client, processHttpRequest, type SdkRequestOptions } from '@src/http-client'\nimport { util } from '@src/util'\nimport type { HarboorAuthHomeGetResponse, HarboorAuthOtpPostResponse, HarboorAuthOtpPostBody, HarboorAuthOtpPutResponse, HarboorAuthOtpPutBody } from './schema/index'\nimport type { AxiosRequestConfig } from 'axios'\n\nclient.defaults.withCredentials = true\nclient.defaults.responseType = 'json'\nclient.defaults.validateStatus = function () {\n return true;\n}\nclient.defaults.baseURL = ''\n\nconst sdk = {\n util,\n client,\n get: async (opts?: Partial<AxiosRequestConfig> & SdkRequestOptions): Promise<HarboorAuthHomeGetResponse> => {\n return (await processHttpRequest('get', '/', opts)) as HarboorAuthHomeGetResponse\n },\n otp: {\n post: async (json: HarboorAuthOtpPostBody, opts?: Partial<AxiosRequestConfig> & SdkRequestOptions): Promise<HarboorAuthOtpPostResponse> => {\n return (await processHttpRequest('post', '/otp', Object.assign({}, opts ?? {}, { data: json }))) as HarboorAuthOtpPostResponse\n },\n put: async (json: HarboorAuthOtpPutBody, opts?: Partial<AxiosRequestConfig> & SdkRequestOptions): Promise<HarboorAuthOtpPutResponse> => {\n return (await processHttpRequest('put', '/otp', Object.assign({}, opts ?? {}, { data: json }))) as HarboorAuthOtpPutResponse\n },\n },\n}\n\nexport { sdk }\n"],"names":["client","axios","create","requestOptionsProps","processHttpRequest","method","url","requestOptions","minTimeThreshold","sdkMinTimeThreshold","startTime","Date","now","axiosOptions","Object","keys","filter","prop","includes","reduce","memo","assign","config","response","elapsedTime","remainingTime","Promise","resolve","setTimeout","data","error","request","console","code","message","util","formDataToJson","formData","json","pair","entries","k","Array","isArray","push","defaults","withCredentials","responseType","validateStatus","baseURL","sdk","get","opts","otp","post","put"],"mappings":"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"}