From 70123251e27f8edff0e90dc10faeb7a741eeffb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Thu, 18 Jan 2024 00:23:22 +0100
Subject: [PATCH] AssignmentFile => Migrate to zod format

---
 types/Dojo/AssignmentFile.ts | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/types/Dojo/AssignmentFile.ts b/types/Dojo/AssignmentFile.ts
index 61c826c..71e8c0d 100644
--- a/types/Dojo/AssignmentFile.ts
+++ b/types/Dojo/AssignmentFile.ts
@@ -1,16 +1,19 @@
-import ImmutableFileDescriptor from './ImmutableFileDescriptor';
+import { ImmutableFileDescriptor, immutableFileDescriptorSchema } from './ImmutableFileDescriptor';
+import { z }                                                      from 'zod';
 
 
-interface AssignmentFile {
-    dojoAssignmentVersion: number,
-    version: number,
+const AssignmentFile = z.object({
+                                    dojoAssignmentVersion: z.number(),
+                                    version              : z.number(),
+                                    immutable            : z.array(immutableFileDescriptorSchema.transform(value => value as ImmutableFileDescriptor)),
+                                    result               : z.object({
+                                                                        container: z.string(),
+                                                                        volume   : z.string().optional()
+                                                                    })
+                                }).strict();
 
-    immutable: Array<ImmutableFileDescriptor>
 
-    result: {
-        container: string, volume?: string
-    }
-}
+type AssignmentFile = z.infer<typeof AssignmentFile>;
 
 
 export default AssignmentFile;
\ No newline at end of file
-- 
GitLab