summaryrefslogtreecommitdiff
path: root/Homework/cs5260/shared/schema/Widget.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/Widget.ts
downloadmisc-undergrad-main.tar.gz
misc-undergrad-main.zip
Diffstat (limited to 'Homework/cs5260/shared/schema/Widget.ts')
-rw-r--r--Homework/cs5260/shared/schema/Widget.ts13
1 files changed, 13 insertions, 0 deletions
diff --git a/Homework/cs5260/shared/schema/Widget.ts b/Homework/cs5260/shared/schema/Widget.ts
new file mode 100644
index 0000000..e7f09d1
--- /dev/null
+++ b/Homework/cs5260/shared/schema/Widget.ts
@@ -0,0 +1,13 @@
+import { z } from "zod";
+
+export const Widget = z.object({
+ id: 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 WidgetT = z.infer<typeof Widget>;