UNPKG

wcz-layout

Version:

86 lines (70 loc) 1.89 kB
# file ## Client - Query: `fileMetasQueryOptions` `fileThumbnailQueryOptions` `fileQueryOptions` - Mutation: `downloadFileMutationOptions` `openFileMutationOptions` `updateFileMetaMutationOptions` `deleteFileMutationOptions` `batchDeleteFilesMutationOptions` - Hooks: `useUploadFile` ## Server - Fetch: `getFileMetas` `getFileThumbnail` `getFile` `downloadFile`. - Mutate: `updateFileMeta` `deleteFile` `batchDeleteFiles` `uploadFile` ## Schemas/Models ```ts const FileMetaSchema = z.object({ id: z.uuid(), subId: z.uuid(), appName: z.string().trim().min(1).max(255), fileName: z.string().trim().min(1).max(255), fileExtension: z.string().trim().min(1).max(255), fileSize: z.number().min(0), mediaSubType: z.string().trim().min(1).max(255), mediaType: z.string().trim().min(1).max(255), mimeType: z.string().trim().min(1).max(255), createdBy: z.string().trim().min(1).max(255), createdDate: z.date(), }); const FileActionsSchema = z.object({ download: z.boolean().optional(), delete: z.boolean().optional(), }); const GetFileMetasSchema = z.object({ appName: z.string().min(1).max(255), subId: z.uuid(), }); const FileSchema = z.object({ appName: z.string().min(1).max(255), id: z.uuid(), }); const UpdateFileMetaSchema = FileMetaSchema.extend({ fileName: z.string().min(1).max(255), }); const UploadFileMetaSchema = z.object({ appName: z.string().min(1).max(255), subId: z.uuid(), file: z.instanceof(File), }); ``` ## Examples ```ts import { fileMetasQueryOptions } from "wcz-layout/data/client"; import { uploadFile } from "wcz-layout/data/server"; // client const { data: files = [] } = useQuery(fileMetasQueryOptions({ appName, subId })); // server await uploadFile({ data: { appName, subId, file } }); ```