import { Logger } from "../logger/types";
import { languages } from "./availableLanguages";
import { ConigGetter } from "./types";
export class EnvConfigGetter implements ConigGetter {
logger: Logger;
constructor(logger: Logger) {
this.logger = logger;
}
getConfig() {
const { TARKOV_API_ENDPOINT, TARKOV_LANG } = process.env;
const langToUse = this.parseLanguage(TARKOV_API_ENDPOINT);
return {
lang: langToUse,
apiEndpoint: TARKOV_LANG || "https://api.tarkov.dev/graphql",
};
}
parseLanguage(parsable: unknown): string {
if (!parsable) {
this.logger.logWarning("Lang is not set. Setting language EN by default");
return "en";
}
if (typeof parsable !== "string") {
throw new Error(`Parseble is not a string`);
}
const normalized = parsable.toLowerCase();
if (!languages.includes(normalized)) {
throw new Error(
`Lang '${normalized}' is not supported. Available languages: ${languages.join(", ")}`,
);
}
return normalized;
}
}