camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
138 lines (137 loc) • 4.29 kB
JavaScript
import { z } from 'zod';
import { facebookSchema } from './facebookSchema';
import { mpegDvbSchema } from './mpegDvbSchema';
import { rtmpSchema } from './rtmpSchema';
import { sdCardSchema } from './sdCardSchema';
import { windySchema } from './windySchema';
import { youtubeSchema } from './youtubeSchema';
import { vimeoSchema } from './vimeoSchema';
import { twitchSchema } from './twitchSchema';
import { churchSchema } from './churchSchema';
import { srtSchema } from './srtSchema';
import { daCastSchema } from './daCastSchema';
import { hlsPullSchema } from './hlsPullSchema';
import { hlsPushSchema } from './hlsPushSchema';
import { wowzaSchema } from './wowzaSchema';
import { dailymotionSchema } from './dailymotionSchema';
import { ibmSchema } from './ibmSchema';
import { microsoftAzureSchema } from './microsoftAzureSchema';
import { microsoftStreamSchema } from './microsoftStreamSchema';
import { gameChangerSchema } from './gameChangerSchema';
import { fileSchema } from '../common';
import { youtubeRtmpSchema } from './youtubeRtmpSchema';
export const streamSchema = z.discriminatedUnion('type', [
facebookSchema,
mpegDvbSchema,
rtmpSchema,
sdCardSchema,
windySchema,
youtubeSchema,
vimeoSchema,
twitchSchema,
churchSchema,
srtSchema,
daCastSchema,
hlsPullSchema,
hlsPushSchema,
wowzaSchema,
dailymotionSchema,
ibmSchema,
microsoftAzureSchema,
microsoftStreamSchema,
gameChangerSchema,
youtubeRtmpSchema,
]);
export const streamListSchema = z.object({ streamList: z.array(streamSchema) });
export const isFacebookStream = (stream) => {
return stream.type === 'facebook';
};
export const isMpegDvbStream = (stream) => {
return stream.type === 'mpeg_dvb';
};
export const isRtmpStream = (stream) => {
return stream.type === 'rtmp';
};
export const isSdCardStream = (stream) => {
return stream.type === 'sd_card';
};
export const isWindyStream = (stream) => {
return stream.type === 'windy';
};
export const isYouTubeStream = (stream) => {
return stream.type === 'youtube';
};
export const isVimeoStream = (stream) => {
return stream.type === 'vimeo';
};
export const isTwitchStream = (stream) => {
return stream.type === 'twitch';
};
export const isChurchStream = (stream) => {
return stream.type === 'church';
};
export const isSrtStream = (stream) => {
return stream.type === 'srt';
};
export const isDaCastStream = (stream) => {
return stream.type === 'da_cast';
};
export const isHlsPullStream = (stream) => {
return stream.type === 'hls_pull';
};
export const isHlsPushStream = (stream) => {
return stream.type === 'hls_push';
};
export const isWowzaStream = (stream) => {
return stream.type === 'wowza';
};
export const isDailymotionStream = (stream) => {
return stream.type === 'dailymotion';
};
export const isIbmStream = (stream) => {
return stream.type === 'ibm';
};
export const isMicrosoftAzureStream = (stream) => {
return stream.type === 'microsoft_azure';
};
export const isMicrosoftStream = (stream) => {
return stream.type === 'microsoft_stream';
};
export const isGameChangerStream = (stream) => {
return stream.type === 'game_changer';
};
export const isYoutubeRtmpStream = (stream) => {
return stream.type === 'youtube_rtmp';
};
export var AudioType;
(function (AudioType) {
AudioType[AudioType["MP3"] = 0] = "MP3";
AudioType[AudioType["AAC"] = 1] = "AAC";
})(AudioType || (AudioType = {}));
export const audioFileStorageTypeSchema = z.union([z.literal('flash'), z.literal('SD0'), z.literal('url')]);
export const storageListSchema = z.array(z.discriminatedUnion('type', [
z.object({
type: z.literal('flash'),
flash: z.string(),
}),
z.object({
type: z.literal('SD0'),
SD0: z.string(),
}),
]));
export const audioFileSchema = z.object({
name: z.string(),
path: z.string(),
storage: audioFileStorageTypeSchema,
});
export const audioFileListSchema = z.array(audioFileSchema);
export const audioUrlSchema = z.object({
fileUrl: z.string(),
name: z.string(),
storage: z.literal('url'),
});
export const audioLocalSchema = z.object({
file: fileSchema,
name: z.string(),
storage: z.enum(['flash', 'SD0']),
});