diff --git a/packages/backend/src/misc/json-schema.ts b/packages/backend/src/misc/json-schema.ts index a721b8663c..2d9c3d19b8 100644 --- a/packages/backend/src/misc/json-schema.ts +++ b/packages/backend/src/misc/json-schema.ts @@ -145,6 +145,7 @@ export interface Schema extends OfSchema { readonly nullable?: boolean; readonly optional?: boolean; readonly items?: Schema; + readonly prefixItems?: ReadonlyArray; readonly properties?: Obj; readonly required?: ReadonlyArray, string>>; readonly description?: string; @@ -198,6 +199,7 @@ type UnionSchemaType = X //type UnionObjectSchemaType = X extends any ? ObjectSchemaType : never; type UnionObjType = a[number]> = X extends any ? ObjType : never; type ArrayUnion = T extends any ? Array : never; +type ArrayToTuple> = { [K in keyof X]: SchemaType }; type ObjectSchemaTypeDef

= p['ref'] extends keyof typeof refs ? Packed : @@ -233,6 +235,7 @@ export type SchemaTypeDef

= never ) : p['items'] extends NonNullable ? SchemaType[] : + p['prefixItems'] extends ReadonlyArray ? ArrayToTuple : any[] ) : p['anyOf'] extends ReadonlyArray ? UnionSchemaType & PartialIntersection> :