@finapi/web-form
Version:
Library for integrating the finAPI Web Form
66 lines (59 loc) • 1.83 kB
text/typescript
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;
}