convex
Version:
Client for the Convex Cloud
35 lines (32 loc) • 1.01 kB
text/typescript
import {
StorageReader,
StorageWriter,
StorageId,
FileMetadata,
} from "../storage.js";
import { performAsyncSyscall } from "./syscall.js";
import { validateArg } from "./validate.js";
export function setupStorageReader(): StorageReader {
return {
getUrl: async (storageId: StorageId) => {
validateArg(storageId, 1, "getUrl", "storageId");
return await performAsyncSyscall("storageGetUrl", { storageId });
},
getMetadata: async (storageId: StorageId): Promise<FileMetadata> => {
return await performAsyncSyscall("storageGetMetadata", { storageId });
},
};
}
export function setupStorageWriter(): StorageWriter {
const reader = setupStorageReader();
return {
generateUploadUrl: async () => {
return await performAsyncSyscall("storageGenerateUploadUrl", {});
},
delete: async (storageId: StorageId) => {
await performAsyncSyscall("storageDelete", { storageId });
},
getUrl: reader.getUrl,
getMetadata: reader.getMetadata,
};
}