UNPKG

digitalocean-openapi-js

Version:
83 lines (82 loc) 3.52 kB
import { RequiredError } from "./base.js"; export const DUMMY_BASE_URL = "https://example.com"; export const assertParamExists = (functionName, paramName, paramValue) => { if (paramValue === null || paramValue === undefined) { throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`); } }; export const setApiKeyToObject = async (object, keyParamName, configuration) => { if (configuration?.apiKey) { const localVarApiKeyValue = typeof configuration.apiKey === "function" ? await configuration.apiKey(keyParamName) : await configuration.apiKey; object[keyParamName] = localVarApiKeyValue; } }; export const setBasicAuthToObject = (object, configuration) => { if (configuration && (configuration.username || configuration.password)) { object.auth = { username: configuration.username, password: configuration.password, }; } }; export const setBearerAuthToObject = async (object, configuration) => { if (configuration?.accessToken) { const accessToken = typeof configuration.accessToken === "function" ? await configuration.accessToken() : await configuration.accessToken; object.Authorization = `Bearer ${accessToken}`; } }; export const setOAuthToObject = async (object, name, scopes, configuration) => { if (configuration?.accessToken) { const localVarAccessTokenValue = typeof configuration.accessToken === "function" ? await configuration.accessToken(name, scopes) : await configuration.accessToken; object.Authorization = `Bearer ${localVarAccessTokenValue}`; } }; function setFlattenedQueryParams(urlSearchParams, parameter, key = "") { if (parameter == null) return; if (typeof parameter === "object") { if (Array.isArray(parameter)) { parameter.forEach((item) => setFlattenedQueryParams(urlSearchParams, item, key)); } else { Object.keys(parameter).forEach((currentKey) => setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== "" ? "." : ""}${currentKey}`)); } } else { if (urlSearchParams.has(key)) { urlSearchParams.append(key, parameter); } else { urlSearchParams.set(key, parameter); } } } export const setSearchParams = (url, ...objects) => { const searchParams = new URLSearchParams(url.search); setFlattenedQueryParams(searchParams, objects); url.search = searchParams.toString(); }; export const serializeDataIfNeeded = (value, requestOptions, configuration) => { const nonString = typeof value !== "string"; const needsSerialization = nonString && configuration && configuration.isJsonMime ? configuration.isJsonMime(requestOptions.headers["Content-Type"]) : nonString; return needsSerialization ? JSON.stringify(value !== undefined ? value : {}) : value || ""; }; export const toPathString = (url) => url.pathname + url.search + url.hash; export const createRequestFunction = (axiosArgs, globalAxios, BASE_PATH, configuration) => (axios = globalAxios, basePath = BASE_PATH) => { const axiosRequestArgs = { ...axiosArgs.options, url: (axios.defaults.baseURL ? "" : (configuration?.basePath ?? basePath)) + axiosArgs.url, }; return axios.request(axiosRequestArgs); };