Skip to content

Commit c48e64c

Browse files
committed
Add basic type for user, prociciency and langauges
1 parent d0de02b commit c48e64c

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed

frontend/src/types/Languages.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { z } from "zod";
2+
3+
const LanguagesEnum = z.enum(["Python", "Java", "C++"]);
4+
5+
type Languages = z.infer<typeof LanguagesEnum>;
6+
7+
export { LanguagesEnum, type Languages };

frontend/src/types/Proficiency.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { z } from "zod";
2+
3+
const ProficiencyEnum = z.enum(["Beginner", "Intermediate", "Advanced"]);
4+
5+
type Proficiency = z.infer<typeof ProficiencyEnum>;
6+
7+
export {
8+
ProficiencyEnum,
9+
type Proficiency,
10+
}

frontend/src/types/User.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { z } from "zod";
2+
import { ProficiencyEnum } from "./Proficiency";
3+
import { LanguagesEnum } from "./Languages";
4+
5+
const UserSchema = z.object({
6+
username: z.string(),
7+
displayName: z.string(),
8+
email: z.string().email(),
9+
proficiency: ProficiencyEnum,
10+
languages: LanguagesEnum,
11+
});
12+
13+
type User = z.infer<typeof UserSchema>;
14+
15+
export { UserSchema, type User };

0 commit comments

Comments
 (0)