UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

42 lines (41 loc) 1.2 kB
/** * Copyright IBM Corp. 2024, 2025 */ import { z } from 'zod'; export const MetadataModel = z.object({ name: z.string(), version: z.string(), tags: z.array(z.string()).optional(), namespace: z.string(), type: z.string().optional(), // types: z.enum(["REST", "SWAGGER", "SOAP", "GRAPHQL", "ODATA"]).optional(), description: z.string().optional(), }); export const BaseModel = z.object({ kind: z.string(), metadata: MetadataModel, spec: z.object({}), kindEnum: z.string().optional(), apiVersion: z.string().optional(), }); export const IfConditionSchema = z .union([ z.boolean(), z.string().refine((val) => { try { const hasVariable = /\$\{[^}]+\}/.test(val); // Ensure there's at least one ${...} if (!hasVariable) return false; return true; } catch { return false; } }, { message: 'Invalid condition: not a valid JavaScript expression', }), ]) .optional() .default(true); export const StopOnFailSchema = z.boolean().optional().default(false); export const RequestSkippedSchema = z.boolean().optional().default(false);