UNPKG

@finapi/web-form

Version:

Library for integrating the finAPI Web Form

66 lines (59 loc) 1.83 kB
import { Environment } from "../props.types"; import { validateUrl } from "./url.util"; const DEFAULT_WEB_COMPONENT_SERVER_URL = "https://webform-ui-finapi-general-live.finapi.io"; const apiUrlToUiUrl = new Map([ [ "https://webform-staging.finapi.io", "https://webform-ui-finapi-general-staging.finapi.io", ], [ "https://webform.finapi-general-staging.finapi.net", "https://webform-ui.finapi-general-staging.finapi.net", ], [ "https://webform-release-staging.finapi.io", "https://webform-ui-finapi-general-release-staging.finapi.io", ], [ "https://webform.finapi-general-release-staging.finapi.net", "https://webform-ui.finapi-general-release-staging.finapi.net", ], [ "https://webform-sandbox.finapi.io", "https://webform-ui-finapi-general-sandbox.finapi.io", ], [ "https://webform-live.finapi.io", "https://webform-ui-finapi-general-live.finapi.io", ], ]); const envToUrl: Map<Environment, string> = new Map([ ["staging", "https://webform-ui.finapi-general-staging.finapi.net"], [ "releaseStaging", "https://webform-ui.finapi-general-release-staging.finapi.net", ], ["sandbox", "https://webform-ui-finapi-general-sandbox.finapi.io"], ["live", "https://webform-ui-finapi-general-live.finapi.io"], ]); export function getWebComponentServer({ sourceUrl, targetUrl, targetEnvironment, }: { sourceUrl?: string; targetUrl?: string; targetEnvironment?: Environment; }): string { const url = (() => { if (sourceUrl) return sourceUrl; if (targetUrl && apiUrlToUiUrl.has(targetUrl)) return apiUrlToUiUrl.get(targetUrl); if (targetEnvironment && envToUrl.has(targetEnvironment)) return envToUrl.get(targetEnvironment); return DEFAULT_WEB_COMPONENT_SERVER_URL; })(); validateUrl(url); return url; }