ai-chatbot/lib/worldlabs/key-pool-config-shared.ts

43 lines
1.2 KiB
TypeScript

export const WORLDLABS_KEY_POOL_CONFIG_KEY = "worldlabs_key_pool_config";
export const DEFAULT_WORLDLABS_BASE_URL = "https://api.vip98k.com";
export type WorldLabsKeyPoolConfig = {
importToken: string;
providerName: string;
baseUrl: string;
isEnabled: boolean;
};
export const defaultWorldLabsKeyPoolConfig: WorldLabsKeyPoolConfig = {
importToken: "",
providerName: "World Labs",
baseUrl: DEFAULT_WORLDLABS_BASE_URL,
isEnabled: true,
};
function normalizeImportToken(value: unknown) {
return String(value || "")
.replace(/[\u2028\u2029]/g, "")
.replace(/[\u0000-\u001F\u007F]/g, "")
.trim();
}
export function normalizeWorldLabsKeyPoolConfig(
value: unknown
): WorldLabsKeyPoolConfig {
if (!value || typeof value !== "object") {
return defaultWorldLabsKeyPoolConfig;
}
const raw = value as Partial<WorldLabsKeyPoolConfig>;
return {
importToken: normalizeImportToken(raw.importToken),
providerName:
String(raw.providerName || "World Labs").trim() || "World Labs",
baseUrl:
String(raw.baseUrl || DEFAULT_WORLDLABS_BASE_URL).trim() ||
DEFAULT_WORLDLABS_BASE_URL,
isEnabled: raw.isEnabled !== false,
};
}