blob: 91e09779c1c0275ac2a1531f0d6de9c4265b5010 [file] [log] [blame]
import SupersetClientClass from './SupersetClientClass';
import { SupersetClientInterface } from './types';
let singletonClient: SupersetClientClass | undefined;
function getInstance(): SupersetClientClass {
if (!singletonClient) {
throw new Error('You must call SupersetClient.configure(...) before calling other methods');
}
return singletonClient;
}
const SupersetClient: SupersetClientInterface = {
configure: config => {
singletonClient = new SupersetClientClass(config);
return singletonClient;
},
reset: () => {
singletonClient = undefined;
},
getInstance,
delete: request => getInstance().delete(request),
get: request => getInstance().get(request),
init: force => getInstance().init(force),
isAuthenticated: () => getInstance().isAuthenticated(),
post: request => getInstance().post(request),
put: request => getInstance().put(request),
reAuthenticate: () => getInstance().reAuthenticate(),
request: request => getInstance().request(request),
};
export default SupersetClient;