import { mutation, query } from "./_generated/server"; import { v } from "convex/values"; import { getPublicStorageUrl, rewriteToPublicUrl } from "./storageUrl"; // Generate upload URL for client-side uploads export const generateUploadUrl = mutation({ args: {}, returns: v.string(), handler: async (ctx) => { const url = await ctx.storage.generateUploadUrl(); return rewriteToPublicUrl(url); }, }); // Get file URL from storage ID export const getFileUrl = query({ args: { storageId: v.id("_storage") }, returns: v.union(v.string(), v.null()), handler: async (ctx, args) => { return await getPublicStorageUrl(ctx, args.storageId); }, });