@ordino.ai/cli
Version:
ordino.ai global command line interface
98 lines (83 loc) • 2.62 kB
text/typescript
import {
ordinoPartnerServiceAxios,
ordinoProjectServiceAxios,
ordinoTeamServiceAxios,
ordinoUserServiceAxios,
ordinoSystemApiKeyServiceAxios,
ordinoUserApiKeyServiceAxios,
ordinoServiceAxios,
stagingOrdinoServiceAxios,
stagingOrdinoPartnerServiceAxios,
stagingOrdinoProjectServiceAxios,
stagingOrdinoTeamServiceAxios,
stagingOrdinoUserServiceAxios,
stagingOrdinoSystemApiKeyServiceAxios,
stagingOrdinoUserApiKeyServiceAxios,
localOrdinoSystemApiKeyServiceAxios,
localOrdinoProjectServiceAxios,
} from "./axios.config";
export type Environment = "staging" | "production" | "local";
export class ServiceFactory {
private static instance: ServiceFactory;
private currentEnvironment: Environment = "production";
private constructor() {}
public static getInstance(): ServiceFactory {
if (!ServiceFactory.instance) {
ServiceFactory.instance = new ServiceFactory();
}
return ServiceFactory.instance;
}
public setEnvironment(env: Environment): void {
this.currentEnvironment = env;
console.log(`Environment set to: ${env}`);
}
public getEnvironment(): Environment {
return this.currentEnvironment;
}
public getServiceAxios() {
return this.currentEnvironment === "staging"
? stagingOrdinoServiceAxios
: ordinoServiceAxios;
}
public getPartnerServiceAxios() {
return this.currentEnvironment === "staging"
? stagingOrdinoPartnerServiceAxios
: ordinoPartnerServiceAxios;
}
public getProjectServiceAxios() {
switch(this.currentEnvironment){
case "local":
return localOrdinoProjectServiceAxios;
case "staging":
return stagingOrdinoProjectServiceAxios;
default:
return ordinoProjectServiceAxios;
}
}
public getTeamServiceAxios() {
return this.currentEnvironment === "staging"
? stagingOrdinoTeamServiceAxios
: ordinoTeamServiceAxios;
}
public getUserServiceAxios() {
return this.currentEnvironment === "staging"
? stagingOrdinoUserServiceAxios
: ordinoUserServiceAxios;
}
public getSystemApiKeyServiceAxios() {
switch(this.currentEnvironment){
case "local":
return localOrdinoSystemApiKeyServiceAxios;
case "staging":
return stagingOrdinoSystemApiKeyServiceAxios;
default:
return ordinoSystemApiKeyServiceAxios;
}
}
public getUserApiKeyServiceAxios() {
return this.currentEnvironment === "staging"
? stagingOrdinoUserApiKeyServiceAxios
: ordinoUserApiKeyServiceAxios;
}
}
export const serviceFactory = ServiceFactory.getInstance();