-
Matiss Janis Aboltins authoredMatiss Janis Aboltins authored
server-config.ts 928 B
import * as fs from '../platform/server/fs';
type ServerConfig = {
BASE_SERVER: string;
SYNC_SERVER: string;
SIGNUP_SERVER: string;
PLAID_SERVER: string;
GOCARDLESS_SERVER: string;
};
let config: ServerConfig | null = null;
function joinURL(base: string | URL, ...paths: string[]): string {
let url = new URL(base);
url.pathname = fs.join(...paths);
return url.toString();
}
export function setServer(url: string): void {
if (url == null) {
config = null;
} else {
config = getServer(url);
}
}
// `url` is optional; if not given it will provide the global config
export function getServer(url?: string): ServerConfig | null {
if (url) {
return {
BASE_SERVER: url,
SYNC_SERVER: joinURL(url, '/sync'),
SIGNUP_SERVER: joinURL(url, '/account'),
PLAID_SERVER: joinURL(url, '/plaid'),
GOCARDLESS_SERVER: joinURL(url, '/gocardless'),
};
}
return config;
}