allow overriding the backend url on frontend w/ burnettk
This commit is contained in:
parent
a1a2af3020
commit
c10cc5035c
|
@ -12,6 +12,7 @@ declare global {
|
||||||
|
|
||||||
let spiffEnvironment = '';
|
let spiffEnvironment = '';
|
||||||
let appRoutingStrategy = 'subdomain_based';
|
let appRoutingStrategy = 'subdomain_based';
|
||||||
|
let backendBaseUrl = null;
|
||||||
if ('spiffworkflowFrontendJsenv' in window) {
|
if ('spiffworkflowFrontendJsenv' in window) {
|
||||||
if ('APP_ROUTING_STRATEGY' in window.spiffworkflowFrontendJsenv) {
|
if ('APP_ROUTING_STRATEGY' in window.spiffworkflowFrontendJsenv) {
|
||||||
appRoutingStrategy = window.spiffworkflowFrontendJsenv.APP_ROUTING_STRATEGY;
|
appRoutingStrategy = window.spiffworkflowFrontendJsenv.APP_ROUTING_STRATEGY;
|
||||||
|
@ -19,50 +20,52 @@ if ('spiffworkflowFrontendJsenv' in window) {
|
||||||
if ('ENVIRONMENT_IDENTIFIER' in window.spiffworkflowFrontendJsenv) {
|
if ('ENVIRONMENT_IDENTIFIER' in window.spiffworkflowFrontendJsenv) {
|
||||||
spiffEnvironment = window.spiffworkflowFrontendJsenv.ENVIRONMENT_IDENTIFIER;
|
spiffEnvironment = window.spiffworkflowFrontendJsenv.ENVIRONMENT_IDENTIFIER;
|
||||||
}
|
}
|
||||||
}
|
if ('BACKEND_BASE_URL' in window.spiffworkflowFrontendJsenv) {
|
||||||
|
backendBaseUrl = window.spiffworkflowFrontendJsenv.BACKEND_BASE_URL;
|
||||||
let hostAndPortAndPathPrefix;
|
|
||||||
if (appRoutingStrategy === 'subdomain_based') {
|
|
||||||
hostAndPortAndPathPrefix = `api.${hostname}`;
|
|
||||||
} else if (appRoutingStrategy === 'path_based') {
|
|
||||||
hostAndPortAndPathPrefix = `${hostname}/api`;
|
|
||||||
} else {
|
|
||||||
throw new Error(`Invalid app routing strategy: ${appRoutingStrategy}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (/^\d+\./.test(hostname) || hostname === 'localhost') {
|
|
||||||
let serverPort = 7000;
|
|
||||||
if (!Number.isNaN(Number(port))) {
|
|
||||||
serverPort = Number(port) - 1;
|
|
||||||
}
|
|
||||||
hostAndPortAndPathPrefix = `${hostname}:${serverPort}`;
|
|
||||||
protocol = 'http';
|
|
||||||
|
|
||||||
if (spiffEnvironment === '') {
|
|
||||||
// using destructuring on an array where we only want the first element
|
|
||||||
// seems super confusing for non-javascript devs to read so let's NOT do that.
|
|
||||||
// eslint-disable-next-line prefer-destructuring
|
|
||||||
spiffEnvironment = hostname.split('.')[0];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (!backendBaseUrl) {
|
||||||
'spiffworkflowFrontendJsenv' in window &&
|
let hostAndPortAndPathPrefix;
|
||||||
'APP_ROUTING_STRATEGY' in window.spiffworkflowFrontendJsenv
|
if (appRoutingStrategy === 'subdomain_based') {
|
||||||
) {
|
hostAndPortAndPathPrefix = `api.${hostname}`;
|
||||||
appRoutingStrategy = window.spiffworkflowFrontendJsenv.APP_ROUTING_STRATEGY;
|
} else if (appRoutingStrategy === 'path_based') {
|
||||||
|
hostAndPortAndPathPrefix = `${hostname}/api`;
|
||||||
|
} else {
|
||||||
|
throw new Error(`Invalid app routing strategy: ${appRoutingStrategy}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (/^\d+\./.test(hostname) || hostname === 'localhost') {
|
||||||
|
let serverPort = 7000;
|
||||||
|
if (!Number.isNaN(Number(port))) {
|
||||||
|
serverPort = Number(port) - 1;
|
||||||
|
}
|
||||||
|
hostAndPortAndPathPrefix = `${hostname}:${serverPort}`;
|
||||||
|
protocol = 'http';
|
||||||
|
|
||||||
|
if (spiffEnvironment === '') {
|
||||||
|
// using destructuring on an array where we only want the first element
|
||||||
|
// seems super confusing for non-javascript devs to read so let's NOT do that.
|
||||||
|
// eslint-disable-next-line prefer-destructuring
|
||||||
|
spiffEnvironment = hostname.split('.')[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
backendBaseUrl = `${protocol}://${hostAndPortAndPathPrefix}/v1.0`;
|
||||||
|
|
||||||
|
// this can only ever work locally since this is a static site.
|
||||||
|
// use spiffworkflowFrontendJsenv if you want to inject env vars
|
||||||
|
// that can be read by the static site.
|
||||||
|
if (process.env.REACT_APP_BACKEND_BASE_URL) {
|
||||||
|
backendBaseUrl = process.env.REACT_APP_BACKEND_BASE_URL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let url = `${protocol}://${hostAndPortAndPathPrefix}/v1.0`;
|
if (!backendBaseUrl.endsWith('/v1.0')) {
|
||||||
|
backendBaseUrl += '/v1.0';
|
||||||
// this can only ever work locally since this is a static site.
|
|
||||||
// use spiffworkflowFrontendJsenv if you want to inject env vars
|
|
||||||
// that can be read by the static site.
|
|
||||||
if (process.env.REACT_APP_BACKEND_BASE_URL) {
|
|
||||||
url = process.env.REACT_APP_BACKEND_BASE_URL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const BACKEND_BASE_URL = url;
|
export const BACKEND_BASE_URL = backendBaseUrl;
|
||||||
|
|
||||||
export const PROCESS_STATUSES = [
|
export const PROCESS_STATUSES = [
|
||||||
'not_started',
|
'not_started',
|
||||||
|
|
Loading…
Reference in New Issue