wakitsu
Version:
Hobby project for managing anime watch list on Kitsu through CLI
51 lines • 1.49 kB
JavaScript
export class KitsuUrlAPI {
#url;
constructor(url) {
this.#url = new URL(url);
}
get url() {
return this.#url;
}
setQueryText(text) {
this.#url.searchParams.append('filter[text]', text);
return this;
}
setPageLimit(limit) {
this.#url.searchParams.append('page[limit]', limit.toString());
return this;
}
filterAnimeFields(fields) {
this.#url.searchParams.append(`fields[anime]`, fields.join(','));
return this;
}
filterUserName(name) {
this.#url.searchParams.append('filter[name]', name);
return this;
}
filterUserID(id) {
this.#url.searchParams.append('filter[user_id]', id);
return this;
}
filterLibraryID(ids) {
this.#url.searchParams.append('filter[id]', ids.join(','));
return this;
}
filterAnimeType(type) {
this.#url.searchParams.append(`filter[subtype]`, type);
return this;
}
filterStatus(status) {
const normalizedStatus = status == 'current' ? 'current,upcoming' : status;
this.#url.searchParams.append('filter[status]', normalizedStatus);
return this;
}
filterMediaType(type) {
this.#url.searchParams.append('filter[kind]', type);
return this;
}
includeCategory(categories) {
this.#url.searchParams.append('include', categories.join(','));
return this;
}
}
//# sourceMappingURL=kitsu-url-api.js.map