UNPKG

@ordino.ai/cli

Version:
98 lines (83 loc) 2.62 kB
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();