Skip to content

Commit c732153

Browse files
committed
Remove UnknownIfNever
1 parent a5c728d commit c732153

File tree

48 files changed

+141
-346
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+141
-346
lines changed

packages/all/src/index.ts

+3-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/arktype/src/index.ts

+3-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/arktype/src/resolver.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ export interface AdapterResolver extends Resolver {
55
base: IfDefined<Type, 'arktype'>;
66
input: this['schema'] extends this['base']
77
? this['schema']['inferIn']
8-
: never;
9-
output: this['schema'] extends this['base'] ? this['schema']['infer'] : never;
8+
: unknown;
9+
output: this['schema'] extends this['base']
10+
? this['schema']['infer']
11+
: unknown;
1012
}

packages/class-validator/src/index.ts

+3-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/class-validator/src/resolver.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ export interface AdapterResolver extends Resolver {
1212
input: this['schema'] extends this['base']
1313
? this['schema'] extends {prototype: unknown}
1414
? Attributes<this['schema']['prototype']>
15-
: never
16-
: never;
15+
: unknown
16+
: unknown;
1717
output: this['schema'] extends this['base']
1818
? this['schema'] extends {prototype: unknown}
1919
? Attributes<this['schema']['prototype']>
20-
: never
21-
: never;
20+
: unknown
21+
: unknown;
2222
}

packages/core/src/index.ts

+1-7
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,7 @@ export {
44
SerializationAdapter,
55
ToJSONSchema,
66
} from './serialization';
7-
export {
8-
IfDefined,
9-
memoize,
10-
memoizeWithKey,
11-
UnknownIfNever,
12-
unsupportedAdapter,
13-
} from './utils';
7+
export {IfDefined, memoize, memoizeWithKey, unsupportedAdapter} from './utils';
148
export {
159
Assert,
1610
createAssert,

packages/core/src/resolver.ts

+7-13
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,16 @@
1-
import type {IfDefined} from './utils';
2-
31
export interface Resolver<TSchema = unknown> {
42
schema: TSchema;
53
input: unknown;
64
output: unknown;
75
base: unknown;
86
}
97

10-
export type SchemaFrom<TResolver extends Resolver> = IfDefined<
11-
TResolver['base']
12-
>;
8+
export type SchemaFrom<TResolver extends Resolver> = TResolver['base'];
139

14-
export type InputFrom<TResolver extends Resolver, TSchema> =
15-
TSchema extends SchemaFrom<TResolver>
16-
? IfDefined<(TResolver & {schema: TSchema})['input']>
17-
: never;
10+
export type InputFrom<TResolver extends Resolver, TSchema> = (TResolver & {
11+
schema: TSchema;
12+
})['input'];
1813

19-
export type OutputFrom<TResolver extends Resolver, TSchema> =
20-
TSchema extends SchemaFrom<TResolver>
21-
? IfDefined<(TResolver & {schema: TSchema})['output']>
22-
: never;
14+
export type OutputFrom<TResolver extends Resolver, TSchema> = (TResolver & {
15+
schema: TSchema;
16+
})['output'];

packages/core/src/utils.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import type {Resolver, SchemaFrom} from './resolver';
22

3-
export type IfDefined<TValue, TModule extends string = ''> = unknown extends TValue
3+
export type IfDefined<
4+
TValue,
5+
TModule extends string = '',
6+
> = unknown extends TValue
47
? TModule extends ''
58
? never
69
: `Cannot find module '${TModule}'`
710
: TValue;
811

9-
export type UnknownIfNever<T> = [T] extends [never] ? unknown : T;
10-
1112
/* @__NO_SIDE_EFFECTS__ */
1213
export function memoize<TValue>(
1314
fn: () => Promise<TValue>,

packages/core/src/validation.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type {OutputFrom, Resolver, SchemaFrom} from './resolver';
2-
import type {UnknownIfNever} from './utils';
32

43
import {memoizeWithKey} from './utils';
54

@@ -17,17 +16,15 @@ export type ValidationAdapter<TResolver extends Resolver> = <
1716
>(
1817
schema: TSchema,
1918
) => Promise<
20-
(
21-
data: unknown,
22-
) => Promise<ValidationResult<UnknownIfNever<OutputFrom<TResolver, TSchema>>>>
19+
(data: unknown) => Promise<ValidationResult<OutputFrom<TResolver, TSchema>>>
2320
>;
2421

2522
export type Validate<TResolver extends Resolver> = <
2623
TSchema extends SchemaFrom<TResolver>,
2724
>(
2825
schema: TSchema,
2926
data: unknown,
30-
) => Promise<ValidationResult<UnknownIfNever<OutputFrom<TResolver, TSchema>>>>;
27+
) => Promise<ValidationResult<OutputFrom<TResolver, TSchema>>>;
3128

3229
/* @__NO_SIDE_EFFECTS__ */
3330
export function createValidate<TResolver extends Resolver>(
@@ -47,7 +44,7 @@ export type Assert<TResolver extends Resolver> = <
4744
>(
4845
schema: TSchema,
4946
data: unknown,
50-
) => Promise<UnknownIfNever<OutputFrom<TResolver, TSchema>>>;
47+
) => Promise<OutputFrom<TResolver, TSchema>>;
5148

5249
/* @__NO_SIDE_EFFECTS__ */
5350
export function createAssert<TResolver extends Resolver>(

packages/core/src/wrap.ts

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type {InputFrom, OutputFrom, Resolver, SchemaFrom} from './resolver';
2-
import type {UnknownIfNever} from './utils';
32
import type {Assert, Validate, ValidationIssue} from './validation';
43

54
export type TypeSchema<TOutput, TInput = TOutput> = {
@@ -16,10 +15,7 @@ export type Wrap<TResolver extends Resolver> = <
1615
TSchema extends SchemaFrom<TResolver>,
1716
>(
1817
schema: TSchema,
19-
) => TypeSchema<
20-
UnknownIfNever<OutputFrom<TResolver, TSchema>>,
21-
UnknownIfNever<InputFrom<TResolver, TSchema>>
22-
>;
18+
) => TypeSchema<OutputFrom<TResolver, TSchema>, InputFrom<TResolver, TSchema>>;
2319

2420
/* @__NO_SIDE_EFFECTS__ */
2521
export function createWrap<TResolver extends Resolver>(

packages/deepkit/src/index.ts

+3-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/deepkit/src/resolver.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ import type {IfDefined, Resolver} from '@typeschema/core';
33

44
export interface AdapterResolver extends Resolver {
55
base: IfDefined<Type, '@deepkit/type'>;
6-
input: this['schema'] extends this['base'] ? unknown : never;
7-
output: this['schema'] extends this['base'] ? unknown : never;
6+
input: unknown;
7+
output: unknown;
88
}

packages/effect/src/index.ts

+3-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/effect/src/resolver.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ export interface AdapterResolver extends Resolver {
55
base: IfDefined<Schema.AnyNoContext, '@effect/schema'>;
66
input: this['schema'] extends this['base']
77
? Schema.Encoded<this['schema']>
8-
: never;
8+
: unknown;
99
output: this['schema'] extends this['base']
1010
? Schema.Type<this['schema']>
11-
: never;
11+
: unknown;
1212
}

packages/fastest-validator/src/index.ts

+3-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/fastest-validator/src/resolver.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ import type {ValidationSchema} from 'fastest-validator';
33

44
export interface AdapterResolver extends Resolver {
55
base: IfDefined<ValidationSchema, 'fastest-validator'>;
6-
input: this['schema'] extends this['base'] ? unknown : never;
7-
output: this['schema'] extends this['base'] ? unknown : never;
6+
input: unknown;
7+
output: unknown;
88
}

packages/function/src/index.ts

+3-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/function/src/resolver.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ export interface AdapterResolver extends Resolver {
88
input: this['schema'] extends this['base']
99
? keyof this['schema'] extends never
1010
? Awaited<ReturnType<this['schema']>>
11-
: never
12-
: never;
11+
: unknown
12+
: unknown;
1313
output: this['schema'] extends this['base']
1414
? keyof this['schema'] extends never
1515
? Awaited<ReturnType<this['schema']>>
16-
: never
17-
: never;
16+
: unknown
17+
: unknown;
1818
}

0 commit comments

Comments
 (0)