refactor(api): ♻️ Reduce complexity of a few functions

This commit is contained in:
Jesse Wierzbinski 2025-03-30 23:17:11 +02:00
parent 25ea870f71
commit 411fcd8af5
No known key found for this signature in database
2 changed files with 72 additions and 81 deletions

View file

@ -45,20 +45,17 @@ const objectToFormData = (
} else if (Array.isArray(value)) {
for (const [index, item] of value.entries()) {
const arrayKey = `${fullKey}[${index}]`;
if (item instanceof File) {
formData.append(arrayKey, item as Blob);
formData.append(arrayKey, item);
} else if (typeof item === "object") {
objectToFormData(
item as ConvertibleObject,
formData,
arrayKey,
);
objectToFormData(item, formData, arrayKey);
} else {
formData.append(arrayKey, String(item));
}
}
} else if (typeof value === "object") {
objectToFormData(value as ConvertibleObject, formData, fullKey);
objectToFormData(value, formData, fullKey);
} else {
formData.append(fullKey, String(value));
}

View file

@ -856,32 +856,30 @@ export class Client extends BaseClient {
): Promise<Output<z.infer<typeof Status>[]>> {
const params = new URLSearchParams();
if (options) {
if (options.max_id) {
if (options?.max_id) {
params.set("max_id", options.max_id);
}
if (options.min_id) {
if (options?.min_id) {
params.set("min_id", options.min_id);
}
if (options.since_id) {
if (options?.since_id) {
params.set("since_id", options.since_id);
}
if (options.limit) {
if (options?.limit) {
params.set("limit", options.limit.toString());
}
if (options.only_media) {
if (options?.only_media) {
params.set("only_media", "true");
}
if (options.pinned) {
if (options?.pinned) {
params.set("pinned", "true");
}
if (options.exclude_replies) {
if (options?.exclude_replies) {
params.set("exclude_replies", "true");
}
if (options.exclude_reblogs) {
if (options?.exclude_reblogs) {
params.set("exclude_reblogs", "true");
}
}
return this.get<z.infer<typeof Status>[]>(
`/api/v1/accounts/${id}/statuses?${params}`,
@ -1681,28 +1679,26 @@ export class Client extends BaseClient {
): Promise<Output<z.infer<typeof Notification>[]>> {
const params = new URLSearchParams();
if (options) {
if (options.max_id) {
if (options?.max_id) {
params.set("max_id", options.max_id);
}
if (options.min_id) {
if (options?.min_id) {
params.set("min_id", options.min_id);
}
if (options.since_id) {
if (options?.since_id) {
params.set("since_id", options.since_id);
}
if (options.limit) {
if (options?.limit) {
params.set("limit", options.limit.toString());
}
if (options.exclude_types) {
if (options?.exclude_types) {
for (const type of options.exclude_types) {
params.append("exclude_types[]", type);
}
}
if (options.account_id) {
if (options?.account_id) {
params.set("account_id", options.account_id);
}
}
return this.get<z.infer<typeof Notification>[]>(
`/api/v1/notifications?${params}`,
@ -2686,7 +2682,7 @@ export class Client extends BaseClient {
*/
public search(
q: string,
options: Partial<{
options?: Partial<{
account_id: string;
exclude_unreviewed: boolean;
following: boolean;
@ -2703,35 +2699,33 @@ export class Client extends BaseClient {
params.set("q", q);
if (options) {
if (options.account_id) {
if (options?.account_id) {
params.set("account_id", options.account_id);
}
if (options.exclude_unreviewed) {
if (options?.exclude_unreviewed) {
params.set("exclude_unreviewed", "true");
}
if (options.following) {
if (options?.following) {
params.set("following", "true");
}
if (options.limit) {
if (options?.limit) {
params.set("limit", options.limit.toString());
}
if (options.max_id) {
if (options?.max_id) {
params.set("max_id", options.max_id);
}
if (options.min_id) {
if (options?.min_id) {
params.set("min_id", options.min_id);
}
if (options.offset) {
if (options?.offset) {
params.set("offset", options.offset.toString());
}
if (options.resolve) {
if (options?.resolve) {
params.set("resolve", "true");
}
if (options.type) {
if (options?.type) {
params.set("type", options.type);
}
}
return this.get<z.infer<typeof Search>>(
`/api/v2/search?${params}`,