UNPKG

camstreamerlib

Version:

Helper library for CamStreamer ACAP applications.

111 lines (110 loc) 4.38 kB
import { z } from 'zod'; import { infoTickerSchema } from './infotickerSchema'; import { accuweatherSchema } from './accuweatherSchema'; import { ptzCompassSchema } from './ptzCompassSchema'; import { imagesSchema } from './imagesSchema'; import { ptzSchema } from './ptzSchema'; import { pipSchema } from './pipSchema'; import { customGraphicsSchema } from './customGraphicsSchema'; import { screenSharingSchema } from './screenSharingSchema'; import { webCameraSharingSchema } from './webCameraSharingSchema'; import { baseballScoreBoardAutomaticSchema, baseballScoreBoardSchema, scoreBoardSchema, scoreOverviewSchema, } from './scoreBoardSchema'; export const wsResponseSchema = z.object({ status: z.number(), message: z.string(), }); export const servicesSchema = z.discriminatedUnion('name', [ infoTickerSchema, accuweatherSchema, ptzCompassSchema, imagesSchema, ptzSchema, pipSchema, customGraphicsSchema, screenSharingSchema, webCameraSharingSchema, scoreBoardSchema, baseballScoreBoardSchema, baseballScoreBoardAutomaticSchema, scoreOverviewSchema, ]); export const serviceListSchema = z.object({ services: z.array(servicesSchema), }); export const isAccuweather = (service) => service.name === 'accuweather'; export const isCustomGraphics = (service) => service.name === 'customGraphics'; export const isImages = (service) => service.name === 'images'; export const isInfoticker = (service) => service.name === 'infoticker'; export const isPip = (service) => service.name === 'pip'; export const isPtzCompass = (service) => service.name === 'ptzCompass'; export const isPtz = (service) => service.name === 'ptz'; export const isScreenSharing = (service) => service.name === 'screenSharing'; export const isWebCameraSharing = (service) => service.name === 'web_camera'; export const isScoreBoard = (service) => service.name === 'scoreBoard'; export const isBaseballScoreBoard = (service) => service.name === 'baseballScoreBoard'; export const isBaseballScoreBoardAutomatic = (service) => service.name === 'myBallBaseballWidgets'; export const isScoreOverview = (service) => service.name === 'scoreOverview'; export var ImageType; (function (ImageType) { ImageType[ImageType["PNG"] = 0] = "PNG"; ImageType[ImageType["JPEG"] = 1] = "JPEG"; })(ImageType || (ImageType = {})); export const imageFileStorageTypeSchema = z.union([ z.literal('flash'), z.literal('SD0'), z.literal('ftp'), z.literal('samba'), z.literal('url'), ]); export const fontFileStorageTypeSchema = z.union([z.literal('flash'), z.literal('SD0')]); export const imageFilestorageDataListSchema = z.array(z.object({ type: imageFileStorageTypeSchema, state: z.string(), })); export const fontStorageDataListSchema = z.array(z.object({ type: fontFileStorageTypeSchema, state: z.string(), })); export const getStorageDataListSchema = (fileType) => { return fileType === 'image' ? imageFilestorageDataListSchema : fontStorageDataListSchema; }; export const imageStorageResponseSchema = z.object({ code: z.number(), list: imageFilestorageDataListSchema, }); export const fontStorageResponseSchema = z.object({ code: z.number(), list: fontStorageDataListSchema, }); export const getStorageResponseSchema = (fileType) => { return fileType === 'image' ? imageStorageResponseSchema : fontStorageResponseSchema; }; export const imageFileSchema = z.object({ name: z.string(), path: z.string().url(), storage: imageFileStorageTypeSchema, }); export const fontFileSchema = z.object({ name: z.string(), path: z.string().url(), storage: fontFileStorageTypeSchema, }); export const getFileSchema = (fileType) => { return fileType === 'image' ? imageFileSchema : fontFileSchema; }; export const imageFileListSchema = z.array(imageFileSchema); export const fontFileListSchema = z.array(fontFileSchema); export const getFileListSchema = (fileType) => { return fileType === 'image' ? imageFileListSchema : fontFileListSchema; }; export const imageFileDataSchema = z.object({ code: z.number(), list: imageFileListSchema, }); export const fontFileDataSchema = z.object({ code: z.number(), list: fontFileListSchema, }); export const getFileDataSchema = (fileType) => { return fileType === 'image' ? imageFileDataSchema : fontFileDataSchema; };