Skip to content

Commit b2455c7

Browse files
committed
refactor: manually format long type definitions
Summary: Test Plan:
1 parent 43ec92f commit b2455c7

File tree

1 file changed

+45
-67
lines changed

1 file changed

+45
-67
lines changed

packages/main/src/selector.ts

+45-67
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,31 @@ import type {Kind} from '@sinclair/typebox';
44
import type {IfDefined, SchemaFrom} from '@typeschema/core';
55
import type {CoreValidator} from 'suretype';
66

7-
type IsTypeboxSchema<TSchema> = [IfDefined<typeof Kind>] extends [never]
8-
? false
9-
: TSchema extends {[Kind]: unknown}
10-
? true
11-
: false;
7+
// prettier-ignore
8+
type IsTypeboxSchema<TSchema> =
9+
[IfDefined<typeof Kind>] extends [never] ? false
10+
: TSchema extends {[Kind]: unknown} ? true
11+
: false;
1212
function isTypeboxSchema(
1313
schema: SchemaFrom<AdapterResolver>,
1414
): schema is SchemaFrom<AdapterResolvers['typebox']> {
1515
return typeof schema === 'object' && Symbol.for('TypeBox.Kind') in schema;
1616
}
1717

18-
type IsSuretypeSchema<TSchema> = [IfDefined<CoreValidator<unknown>>] extends [
19-
never,
20-
]
21-
? false
22-
: TSchema extends CoreValidator<unknown>
23-
? true
24-
: false;
18+
// prettier-ignore
19+
type IsSuretypeSchema<TSchema> =
20+
[IfDefined<CoreValidator<unknown>>] extends [never] ? false
21+
: TSchema extends CoreValidator<unknown> ? true
22+
: false;
2523
function isSuretypeSchema(
2624
schema: SchemaFrom<AdapterResolver>,
2725
): schema is SchemaFrom<AdapterResolvers['suretype']> {
2826
return typeof schema === 'object' && '_annotations' in schema;
2927
}
3028

31-
type IsClassValidatorSchema<TSchema> = TSchema extends new (
32-
...args: unknown[]
33-
) => object
34-
? true
29+
// prettier-ignore
30+
type IsClassValidatorSchema<TSchema> =
31+
TSchema extends new (...args: unknown[]) => object ? true
3532
: false;
3633
function isClassValidatorSchema(
3734
schema: SchemaFrom<AdapterResolver>,
@@ -41,23 +38,17 @@ function isClassValidatorSchema(
4138
);
4239
}
4340

44-
type IsJSONSchema<TSchema> = TSchema extends {type: unknown}
45-
? true
46-
: TSchema extends {const: unknown}
47-
? true
48-
: TSchema extends {enum: unknown}
49-
? true
50-
: TSchema extends {anyOf: unknown}
51-
? true
52-
: TSchema extends {oneOf: unknown}
53-
? true
54-
: TSchema extends {allOf: unknown}
55-
? true
56-
: TSchema extends {not: unknown}
57-
? true
58-
: TSchema extends {if: unknown}
59-
? true
60-
: false;
41+
// prettier-ignore
42+
type IsJSONSchema<TSchema> =
43+
TSchema extends {type: unknown} ? true
44+
: TSchema extends {const: unknown} ? true
45+
: TSchema extends {enum: unknown} ? true
46+
: TSchema extends {anyOf: unknown} ? true
47+
: TSchema extends {oneOf: unknown} ? true
48+
: TSchema extends {allOf: unknown} ? true
49+
: TSchema extends {not: unknown} ? true
50+
: TSchema extends {if: unknown} ? true
51+
: false;
6152
function isJSONSchema(
6253
schema: SchemaFrom<AdapterResolver>,
6354
): schema is SchemaFrom<AdapterResolvers['json']> {
@@ -80,43 +71,30 @@ function notJSON<TSchema>(
8071
return schema as any;
8172
}
8273

74+
// prettier-ignore
8375
export type Select<TSchema> =
8476
// eslint-disable-next-line @typescript-eslint/ban-types
8577
TSchema extends Function
86-
? TSchema extends {assert: unknown}
87-
? 'arktype'
88-
: IsClassValidatorSchema<TSchema> extends true
89-
? 'classValidator'
90-
: 'function'
91-
: IsTypeboxSchema<TSchema> extends true
92-
? 'typebox'
93-
: IsSuretypeSchema<TSchema> extends true
94-
? 'suretype'
95-
: TSchema extends {__isYupSchema__: unknown}
96-
? 'yup'
97-
: TSchema extends {_def: unknown}
98-
? 'zod'
99-
: TSchema extends {async: unknown}
100-
? 'valibot'
101-
: TSchema extends {refiner: unknown}
102-
? 'superstruct'
103-
: TSchema extends {_flags: unknown}
104-
? 'joi'
105-
: TSchema extends {encode: unknown}
106-
? 'ioTs'
107-
: TSchema extends {reflect: unknown}
108-
? 'runtypes'
109-
: TSchema extends {ast: unknown}
110-
? 'effect'
111-
: TSchema extends {kind: unknown}
112-
? 'deepkit'
113-
: TSchema extends {addValidator: unknown}
114-
? 'ow'
115-
: TSchema extends {toTerminals: unknown}
116-
? 'valita'
117-
: IsJSONSchema<TSchema> extends true
118-
? 'json'
119-
: 'fastestValidator';
78+
? TSchema extends {assert: unknown} ? 'arktype'
79+
: IsClassValidatorSchema<TSchema> extends true ? 'classValidator'
80+
: 'function'
81+
: TSchema extends object
82+
? IsTypeboxSchema<TSchema> extends true ? 'typebox'
83+
: IsSuretypeSchema<TSchema> extends true ? 'suretype'
84+
: TSchema extends {__isYupSchema__: unknown} ? 'yup'
85+
: TSchema extends {_def: unknown} ? 'zod'
86+
: TSchema extends {async: unknown} ? 'valibot'
87+
: TSchema extends {refiner: unknown} ? 'superstruct'
88+
: TSchema extends {_flags: unknown} ? 'joi'
89+
: TSchema extends {encode: unknown} ? 'ioTs'
90+
: TSchema extends {reflect: unknown} ? 'runtypes'
91+
: TSchema extends {ast: unknown} ? 'effect'
92+
: TSchema extends {kind: unknown} ? 'deepkit'
93+
: TSchema extends {addValidator: unknown} ? 'ow'
94+
: TSchema extends {toTerminals: unknown} ? 'valita'
95+
: IsJSONSchema<TSchema> extends true ? 'json'
96+
: 'fastestValidator'
97+
: never;
12098

12199
export const select: <
122100
TMap extends {

0 commit comments

Comments
 (0)