From d27075c5f536a86a6c81cb3c3cec92b302663e2e Mon Sep 17 00:00:00 2001 From: zyoshoka <107108195+zyoshoka@users.noreply.github.com> Date: Tue, 27 May 2025 08:57:09 +0900 Subject: fix(backend): correct invalid schema format specifying only `required` for `anyOf` (#16089) * fix(backend): correct invalid schema format specifying only `required` for `anyOf` * refactor(backend): make types derived from `allOf` or `anyOf` more strong --- packages/backend/src/misc/json-schema.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'packages/backend/src/misc/json-schema.ts') diff --git a/packages/backend/src/misc/json-schema.ts b/packages/backend/src/misc/json-schema.ts index 23f6b692a7..5e5d7041b9 100644 --- a/packages/backend/src/misc/json-schema.ts +++ b/packages/backend/src/misc/json-schema.ts @@ -218,7 +218,17 @@ type NullOrUndefined
=
// https://stackoverflow.com/questions/54938141/typescript-convert-union-to-intersection
// Get intersection from union
type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
-type PartialIntersection =
: never
: ObjType >
:
- p['anyOf'] extends ReadonlyArray :
+ p['allOf'] extends ReadonlyArray :
p['additionalProperties'] extends true ? Record =
p['items'] extends NonNullable [] :
any[]
) :
- p['anyOf'] extends ReadonlyArray & PartialIntersection :
+ p['allOf'] extends ReadonlyArray :
p['oneOf'] extends ReadonlyArray :
any;
--
cgit v1.2.3-freya