@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
31 lines (28 loc) • 961 B
text/typescript
import { ISettings } from '../../types';
const telemetryEndpointMatcher = /^\/v1\/metrics\/(config|usage)/;
const eventsEndpointMatcher = /^\/(testImpressions|metrics|events)/;
const authEndpointMatcher = /^\/v2\/auth/;
const streamingEndpointMatcher = /^\/(sse|event-stream)/;
/**
* Get URL based on a given target (path).
* ATM, it is only used for testing purposes.
*
* @param settings - settings object
* @param target - url path
* @returns complete url
*/
export function url(settings: ISettings, target: string) {
if (telemetryEndpointMatcher.test(target)) {
return `${settings.urls.telemetry}${target}`;
}
if (eventsEndpointMatcher.test(target)) {
return `${settings.urls.events}${target}`;
}
if (authEndpointMatcher.test(target)) {
return `${settings.urls.auth}${target}`;
}
if (streamingEndpointMatcher.test(target)) {
return `${settings.urls.streaming}${target}`;
}
return `${settings.urls.sdk}${target}`;
}