@4players/odin-common
Version:
A collection of commonly used type definitions and utility functions across ODIN web projects
23 lines (22 loc) • 690 B
JavaScript
import * as z from 'zod';
export const MediaIdSchema = z.number();
export const MediaAudioPropertiesSchema = z.object({
kind: z.optional(z.literal('audio')),
uid: z.optional(z.string()),
customType: z.optional(z.string()),
});
export const MediaVideoPropertiesSchema = z.object({
kind: z.optional(z.literal('video')),
codec: z.optional(z.string()),
uid: z.optional(z.string()),
customType: z.optional(z.string()),
});
export const MediaPropertiesSchema = z.union([
MediaAudioPropertiesSchema,
MediaVideoPropertiesSchema,
]);
export const MediaSchema = z.object({
id: MediaIdSchema,
properties: MediaPropertiesSchema,
paused: z.boolean(),
});