chorus/src/types.ts

39 lines
867 B
TypeScript
Raw Normal View History

2024-12-24 14:43:23 +00:00
import {z} from "zod";
const commentsConfigSchema = z.object({
mail: z.object({
imap: z.object({
host: z.string(),
port: z.number({ coerce: true }),
auth: z.object({
user: z.string(),
pass: z.string(),
}),
}),
threads: z.object({
type: z.string(), // fixme : in validation
template: z.string(),
2024-12-31 02:36:12 +00:00
idPrefix: z.string(),
2024-12-24 14:43:23 +00:00
}),
}),
})
export type CommentsConfig = z.infer<typeof commentsConfigSchema>
export const castCommentsConfig = (what: unknown): CommentsConfig => {
return commentsConfigSchema.parse(what)
}
2024-12-31 02:36:12 +00:00
export type Message = {
id: string,
date: Date,
recipients: string[],
from: {
name?: string,
address?: string,
},
subject: string,
content: string,
}