fix media api to respect options' init, improve types

This commit is contained in:
dswbx
2025-07-19 08:47:39 +02:00
parent 0a49061549
commit ba7587aa3f
+5 -2
View File
@@ -10,6 +10,7 @@ import type { ApiFetcher } from "Api";
export type MediaApiOptions = BaseModuleApiOptions & { export type MediaApiOptions = BaseModuleApiOptions & {
upload_fetcher: ApiFetcher; upload_fetcher: ApiFetcher;
init?: RequestInit;
}; };
export class MediaApi extends ModuleApi<MediaApiOptions> { export class MediaApi extends ModuleApi<MediaApiOptions> {
@@ -17,6 +18,7 @@ export class MediaApi extends ModuleApi<MediaApiOptions> {
return { return {
basepath: "/api/media", basepath: "/api/media",
upload_fetcher: fetch, upload_fetcher: fetch,
init: {},
}; };
} }
@@ -67,7 +69,7 @@ export class MediaApi extends ModuleApi<MediaApiOptions> {
} }
protected uploadFile( protected uploadFile(
body: File | ReadableStream, body: File | Blob | ReadableStream,
opts?: { opts?: {
filename?: string; filename?: string;
path?: TInput; path?: TInput;
@@ -93,6 +95,7 @@ export class MediaApi extends ModuleApi<MediaApiOptions> {
} }
const init = { const init = {
...this.options.init,
...(opts?._init || {}), ...(opts?._init || {}),
headers, headers,
}; };
@@ -108,7 +111,7 @@ export class MediaApi extends ModuleApi<MediaApiOptions> {
} }
async upload( async upload(
item: Request | Response | string | File | ReadableStream, item: Request | Response | string | File | Blob | ReadableStream,
opts: { opts: {
filename?: string; filename?: string;
_init?: Omit<RequestInit, "body">; _init?: Omit<RequestInit, "body">;