camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
77 lines (76 loc) • 3.01 kB
JavaScript
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 fileStorageTypeSchema = z.union([
z.literal('flash'),
z.literal('SD0'),
z.literal('ftp'),
z.literal('samba'),
z.literal('url'),
]);
export const storageDataListSchema = z.array(z.object({
type: fileStorageTypeSchema,
state: z.string(),
}));
export const storageResponseSchema = z.object({
code: z.number(),
list: storageDataListSchema,
});
export const fileSchema = z.object({
name: z.string(),
path: z.string().url(),
storage: fileStorageTypeSchema,
});
export const fileListSchema = z.array(fileSchema);
export const fileDataSchema = z.object({
code: z.number(),
list: fileListSchema,
});