import type { Credentials } from "./credentials.js"; export const buildApiParams = ( credentials: Credentials, params: Record = {}, ) => { const authMode = credentials.authMode || (credentials.apiKey ? "apikey" : credentials.password ? "password" : "token"); const search = new URLSearchParams({ v: "1.16.1", c: "tinysub", f: "json" }); if (authMode === "apikey") { search.set("apiKey", credentials.apiKey || ""); } else { search.set("u", credentials.username || ""); if (authMode === "password") search.set("p", credentials.password || ""); else { search.set("t", credentials.token || ""); search.set("s", credentials.salt || ""); } } for (const [key, value] of Object.entries(params)) { if (Array.isArray(value)) { for (const item of value) search.append(key, String(item)); } else if (value !== undefined) { search.append(key, String(value)); } } return search; };