mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 21:15:32 +09:00
refactor(schema): simplify validation and OpenAPI generation (#2709)
This commit is contained in:
1 parent
4bc5593f9f
commit
de1fd95a99
510 files changed
+29494
-36131
No files matched your search
@@ -0,0 +1,29 @@
|
||||
import {z} from 'zod';
|
||||
|
||||
export interface EnumEntry {
|
||||
name: string;
|
||||
value: string | number;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
export interface BitflagEntry {
|
||||
name: string;
|
||||
value: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
interface SchemaMetadata {
|
||||
name?: string;
|
||||
enumEntries?: Array<EnumEntry>;
|
||||
openEnum?: boolean;
|
||||
bitflagValues?: Array<BitflagEntry>;
|
||||
format?: string;
|
||||
}
|
||||
|
||||
export const schemaMetadata = z.registry<SchemaMetadata>();
|
||||
|
||||
export function withSchemaMetadata<T extends z.ZodType>(schema: T, metadata: SchemaMetadata): T {
|
||||
const registeredSchema: z.ZodType = schema;
|
||||
schemaMetadata.add(registeredSchema, metadata);
|
||||
return schema;
|
||||
}
|
||||
Reference in new issue
Block a user