@battle-racing/br-common-lib
Version:
Common library for all Battle Racing Repositorios
18 lines (12 loc) • 675 B
text/typescript
import { z } from 'zod';
export const arithmeticOperatorSchema = z.enum(['+', '-', '*', '/']);
// Regex for SimpleArithmeticString: check for operator followed by numbers
export const simpleArithmeticStringSchema = z.string().regex(/^[\+\-\*\/]-?\d+(\.\d+)?$/);
// Regex for ContextArithmeticString: $variable operator number
export const kartContextVariableSchema = z.enum(['$kart.configuredSpeed', '$kart.powerUpTime']);
export const contextArithmeticStringSchema = z.string().regex(/^\$[a-zA-Z0-9\.]+\s[\+\-\*\/]\s-?\d+(\.\d+)?$/);
export const arithmeticExpressionSchema = z.union([
z.number(),
simpleArithmeticStringSchema,
contextArithmeticStringSchema,
]);