UNPKG

payload-cloudinary

Version:
55 lines 1.77 kB
import { getGenerateClientUploadSignature } from './generateClientUploadSignature'; /** * Creates a server handler for generating Cloudinary upload signatures * * This should be used to create an API endpoint that your client-side code * can call to get a signature for uploading to Cloudinary. * * @example * ```ts * // In your API route (e.g., app/api/cloudinary/upload/route.ts for Next.js) * import { NextRequest, NextResponse } from 'next/server' * import { createCloudinaryServerHandler } from 'payload-cloudinary' * import { v2 as cloudinary } from 'cloudinary' * * // Configure cloudinary * cloudinary.config({ * cloud_name: process.env.CLOUDINARY_CLOUD_NAME, * api_key: process.env.CLOUDINARY_API_KEY, * api_secret: process.env.CLOUDINARY_API_SECRET, * }) * * const handler = createCloudinaryServerHandler({ * cloudinary, * folder: 'payload-media', * versioning: { enabled: false }, * publicID: { enabled: true }, * }) * * export async function POST(req: NextRequest) { * try { * const body = await req.json() * const signature = await handler(body) * return NextResponse.json(signature) * } catch (error) { * return NextResponse.json( * { error: 'Failed to generate signature' }, * { status: 500 } * ) * } * } * ``` */ export function createCloudinaryServerHandler(options) { const { cloudinary, folder = 'payload-media', versioning = { enabled: false }, publicID, } = options; const generateSignature = getGenerateClientUploadSignature({ cloudinary, folder, versioning, publicID, }); return async (params) => { return await generateSignature(params); }; } //# sourceMappingURL=createServerHandler.js.map