mediaApi
mediaApi<
TDataModel,Visibility>(__namedParameters):object
Defined in: packages/core/src/media/api/server.ts:38
Registers getUrl as a convex query endpoint.
Registers generateUploadUrl, createMediaDocument, and deleteMedia as Convex mutation endpoints.
Call in the user’s convex/vex/media.ts. The factory wraps
the server functions in mutation() with v.args() schemas so Convex
exposes them at api.vex.media.generateUploadUrl, api.vex.media.createMediaDocument, etc.
vexConvexApi.media.generateUploadUrl, vexConvexApi.media.createMediaDocument, etc. in
@vexcms/core/src/convex/index.ts point at these paths.
Type Parameters
Section titled “Type Parameters”TDataModel
Section titled “TDataModel”TDataModel extends GenericDataModel = GenericDataModel
Visibility
Section titled “Visibility”Visibility extends FunctionVisibility = "public"
Parameters
Section titled “Parameters”__namedParameters
Section titled “__namedParameters”config
Section titled “config”The user’s resolved VexConfig.
getAuth?
Section titled “getAuth?”(ctx) => Promise<VexApiAuth | undefined>
Server-side resolver for the current caller: receives the handler’s ctx and
returns { user, organization? } (or undefined when unauthenticated).
Called once per request, and only when config.access is configured.
Never exposed to clients.
mutation
Section titled “mutation”MutationBuilder<TDataModel, Visibility>
Convex mutation builder from _generated/server (or an internal builder to keep endpoints private).
QueryBuilder<TDataModel, Visibility>
Convex query builder from _generated/server (or an internal builder to keep endpoints private).
Returns
Section titled “Returns”object
Registered getUrl Convex query, generateUploadUrl / createMediaDocument / deleteMedia Convex mutations.
createMediaDocument
Section titled “createMediaDocument”createMediaDocument:
RegisteredMutation<Visibility, {adapter:string;adapterFields?:any;alt?:string;collectionSlug:string;filename:string;mimeType:string;size:number;storageId:string; },Promise<string>>
deleteMedia
Section titled “deleteMedia”deleteMedia:
RegisteredMutation<Visibility, {adapter:string;mediaId:string;softDelete?:boolean; },Promise<boolean>>
generateUploadUrl
Section titled “generateUploadUrl”generateUploadUrl:
RegisteredMutation<Visibility, {adapter:string;collection:string; },Promise<{url:string; }>>
getUrl
Section titled “getUrl”getUrl:
RegisteredQuery<Visibility, {adapter:string;mediaId:string; },Promise<GetUrlReturn>>
Example
Section titled “Example”import { createGetAuth } from "@vexcms/better-auth"import { mediaApi } from "@vexcms/core/convex";import { mutation, query } from "../_generated/server";import config from "../../src/vex.config";
export const { getUrl, generateUploadUrl, createMediaDocument, deleteMedia } = mediaApi({ config, query, mutation, getAuth: createGetAuth({...}) });