feat(connection): allow developer to get supersetclient instance (#552)

This commit is contained in:
Krist Wongsuphasawat 2020-05-29 17:56:56 -07:00 committed by Yongjie Zhao
parent bdb0f50874
commit 0a48d6e774

View File

@ -3,12 +3,12 @@ import { ClientConfig, RequestConfig, SupersetClientInterface } from './types';
let singletonClient: SupersetClientClass | undefined; let singletonClient: SupersetClientClass | undefined;
function getInstance(maybeClient: SupersetClientClass | undefined): SupersetClientClass { function getInstance(): SupersetClientClass {
if (!maybeClient) { if (!singletonClient) {
throw new Error('You must call SupersetClient.configure(...) before calling other methods'); throw new Error('You must call SupersetClient.configure(...) before calling other methods');
} }
return maybeClient; return singletonClient;
} }
const SupersetClient: SupersetClientInterface = { const SupersetClient: SupersetClientInterface = {
@ -17,15 +17,15 @@ const SupersetClient: SupersetClientInterface = {
return singletonClient; return singletonClient;
}, },
delete: (request: RequestConfig) => getInstance(singletonClient).delete(request), delete: (request: RequestConfig) => getInstance().delete(request),
get: (request: RequestConfig) => getInstance(singletonClient).get(request), get: (request: RequestConfig) => getInstance().get(request),
getInstance, getInstance,
init: (force?: boolean) => getInstance(singletonClient).init(force), init: (force?: boolean) => getInstance().init(force),
isAuthenticated: () => getInstance(singletonClient).isAuthenticated(), isAuthenticated: () => getInstance().isAuthenticated(),
post: (request: RequestConfig) => getInstance(singletonClient).post(request), post: (request: RequestConfig) => getInstance().post(request),
put: (request: RequestConfig) => getInstance(singletonClient).put(request), put: (request: RequestConfig) => getInstance().put(request),
reAuthenticate: () => getInstance(singletonClient).init(/* force = */ true), reAuthenticate: () => getInstance().init(/* force = */ true),
request: (request: RequestConfig) => getInstance(singletonClient).request(request), request: (request: RequestConfig) => getInstance().request(request),
reset: () => { reset: () => {
singletonClient = undefined; singletonClient = undefined;
}, },