mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 08:28:19 +01:00
24 lines
728 B
TypeScript
24 lines
728 B
TypeScript
import { z } from "zod";
|
|
import { isISOString } from "../regex.ts";
|
|
import { url } from "./common.ts";
|
|
import { CustomEmojiExtensionSchema } from "./extensions/emojis.ts";
|
|
|
|
export const ExtensionPropertySchema = z
|
|
.object({
|
|
"pub.versia:custom_emojis":
|
|
CustomEmojiExtensionSchema.optional().nullable(),
|
|
})
|
|
.catchall(z.any());
|
|
|
|
export const EntitySchema = z.strictObject({
|
|
// biome-ignore lint/style/useNamingConvention:
|
|
$schema: z.string().url().nullish(),
|
|
id: z.string().max(512),
|
|
created_at: z
|
|
.string()
|
|
.refine((v) => isISOString(v), "must be a valid ISO8601 datetime"),
|
|
uri: url,
|
|
type: z.string(),
|
|
extensions: ExtensionPropertySchema.nullish(),
|
|
});
|