summaryrefslogtreecommitdiff
path: root/Homework/cs5260/shared/schema/WidgetRequest.ts
diff options
context:
space:
mode:
authorElizabeth Alexander Hunt <me@liz.coffee>2026-07-02 11:55:17 -0700
committerElizabeth Alexander Hunt <me@liz.coffee>2026-07-02 11:55:17 -0700
commit6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 (patch)
treeed97e39ec77c5231ffd2c394493e68d00ddac5a4 /Homework/cs5260/shared/schema/WidgetRequest.ts
downloadmisc-undergrad-6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6.tar.gz
misc-undergrad-6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6.zip
Diffstat (limited to 'Homework/cs5260/shared/schema/WidgetRequest.ts')
-rw-r--r--Homework/cs5260/shared/schema/WidgetRequest.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/Homework/cs5260/shared/schema/WidgetRequest.ts b/Homework/cs5260/shared/schema/WidgetRequest.ts
new file mode 100644
index 0000000..11259cf
--- /dev/null
+++ b/Homework/cs5260/shared/schema/WidgetRequest.ts
@@ -0,0 +1,16 @@
+import { z } from "zod";
+
+// generated from json-schema-to-zod
+export const WidgetRequest = z.object({
+ type: z.string().regex(new RegExp("create|delete|update")),
+ requestId: z.string(),
+ widgetId: z.string(),
+ owner: z.string().regex(new RegExp("[A-Za-z ]+")),
+ label: z.string().optional(),
+ description: z.string().optional(),
+ otherAttributes: z
+ .array(z.object({ name: z.string(), value: z.string() }))
+ .optional(),
+});
+
+export type WidgetRequestT = z.infer<typeof WidgetRequest>;