28 lines · 829 B · TypeScript
RawDownload
import * as Schema from "effect/Schema";import { EnvironmentId } from "@t3tools/contracts"; export const DraftComposerImageAttachmentSchema = Schema.Struct({  id: Schema.String,  previewUri: Schema.String,  type: Schema.Literal("image"),  name: Schema.String,  mimeType: Schema.String,  sizeBytes: Schema.Number,  dataUrl: Schema.String,}); export const DraftComposerFileAttachmentSchema = Schema.Struct({  id: Schema.String,  type: Schema.Literal("file"),  name: Schema.String,  mimeType: Schema.String,  sizeBytes: Schema.Number,  fileUri: Schema.String,  uploadedAttachmentId: Schema.optional(Schema.String),  uploadEnvironmentId: Schema.optional(EnvironmentId),}); export const DraftComposerAttachmentSchema = Schema.Union([  DraftComposerImageAttachmentSchema,  DraftComposerFileAttachmentSchema,]);