austinried 3408a3988e music source and client for subsonic
test fixture setup for navidrome
2025-11-02 10:35:22 +09:00

25 lines
618 B
TypeScript

export class SubsonicClient {
constructor(
readonly baseUrl: string,
readonly username: string,
readonly password: string,
) {}
get(method: string, params?: Record<string, string>) {
const url = new URL(`rest/${method}.view`, this.baseUrl);
url.searchParams.set("u", this.username);
url.searchParams.set("p", this.password);
url.searchParams.set("v", "1.13.0");
url.searchParams.set("c", "subtracks-test-fixture");
if (params) {
Object.entries(params).forEach(([key, value]) =>
url.searchParams.append(key, value)
);
}
return fetch(url);
}
}