@battle-racing/br-common-lib
Version:
Common library for all Battle Racing Repositorios
37 lines (30 loc) • 1.19 kB
text/typescript
import { z } from 'zod';
import { colorNameSchema } from '../../color';
import { checkpointTypeSchema } from '../../checkpoint';
import { FLAG_MEDIA_NAME, FLAG_STATUS, FLAG_ACTION_COMMAND } from './Flag.const';
export const flagStatusSchema = z.enum(FLAG_STATUS);
export const flagActionCommandSchema = z.enum(FLAG_ACTION_COMMAND);
export const flagMediaNameSchema = z
.union([z.number().min(0).max(255), z.enum(FLAG_MEDIA_NAME)])
.describe('The Media source could be the name of the icon on Flag Module or a number to render');
export const flagModuleStatusSchema = z.object({
flagStatus: flagStatusSchema,
lastCheckpointAddress: z.number(),
lastCheckpointType: checkpointTypeSchema,
});
export const flagConfigurationOptionsSchema = z.object({
kartId: z.number(),
kartNumber: z.number(),
kartColor: colorNameSchema, // ensure colorNameSchema is imported
screenBrightness: z.number().min(0).max(100),
animationTime: z.number().min(1).max(25),
});
export const flagShowMediaOptionsSchema = z.object({
screens: z.object({
left: z.boolean(),
right: z.boolean(),
front: z.boolean(),
back: z.boolean(),
}),
mediaSourceName: flagMediaNameSchema,
});