IntegrationTypeScript SDKReact
Handle files
Choose response-embedded content or host storage and own the complete file lifecycle.
Choose storage mode
With storeDataAsText, file content travels inside the response as a data URL. With an uploader, the host stores content and the answer keeps returned file metadata and a URL.
Provide file seams
Pass storage callbacks while parsing. Core never receives a DOM File; the React adapter converts selected or dropped files into plain FileEntry values.
import type { FileCleaner, FileUploader } from '@kajay/core';
const uploadFiles: FileUploader = async ({ questionName, files }) => {
const response = await uploadToObjectStorage(questionName, files);
return response.map((stored) => ({
name: stored.name,
type: stored.type,
size: stored.size,
url: stored.url,
}));
};
const clearFiles: FileCleaner = async ({ files }) => {
await Promise.all(files.map((file) => deleteStoredFile(file.url)));
};
const { survey } = parseSurvey(definition, { uploadFiles, clearFiles });Own the file lifecycle
- Kajay enforces authored count, size, and accepted-type rules and reports upload state.
- The author chooses limits and whether response data may carry content.
- The host scans content, authorizes access, stores and deletes objects, mints download URLs, and applies retention policy.