@nmtjs/type 0.12.5 → 0.12.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1 -3
- package/dist/temporal.d.ts +1 -0
- package/dist/temporal.js +0 -2
- package/dist/types/any.d.ts +6 -0
- package/dist/types/any.js +6 -6
- package/dist/types/array.d.ts +13 -0
- package/dist/types/array.js +21 -23
- package/dist/types/base.d.ts +62 -0
- package/dist/types/base.js +67 -65
- package/dist/types/boolean.d.ts +6 -0
- package/dist/types/boolean.js +6 -6
- package/dist/types/custom.d.ts +14 -0
- package/dist/types/custom.js +21 -21
- package/dist/types/date.d.ts +6 -0
- package/dist/types/date.js +8 -10
- package/dist/types/enum.d.ts +10 -0
- package/dist/types/enum.js +7 -9
- package/dist/types/literal.d.ts +8 -0
- package/dist/types/literal.js +7 -9
- package/dist/types/never.d.ts +6 -0
- package/dist/types/never.js +6 -6
- package/dist/types/number.d.ts +23 -0
- package/dist/types/number.js +36 -38
- package/dist/types/object.d.ts +43 -0
- package/dist/types/object.js +39 -44
- package/dist/types/string.d.ts +22 -0
- package/dist/types/string.js +49 -51
- package/dist/types/temporal.d.ts +45 -0
- package/dist/types/temporal.js +74 -76
- package/dist/types/tuple.d.ts +13 -0
- package/dist/types/tuple.js +12 -15
- package/dist/types/type.d.ts +24 -0
- package/dist/types/type.js +0 -2
- package/dist/types/union.d.ts +40 -0
- package/dist/types/union.js +29 -32
- package/package.json +8 -7
- package/dist/index.js.map +0 -1
- package/dist/temporal.js.map +0 -1
- package/dist/types/any.js.map +0 -1
- package/dist/types/array.js.map +0 -1
- package/dist/types/base.js.map +0 -1
- package/dist/types/boolean.js.map +0 -1
- package/dist/types/custom.js.map +0 -1
- package/dist/types/date.js.map +0 -1
- package/dist/types/enum.js.map +0 -1
- package/dist/types/literal.js.map +0 -1
- package/dist/types/never.js.map +0 -1
- package/dist/types/number.js.map +0 -1
- package/dist/types/object.js.map +0 -1
- package/dist/types/string.js.map +0 -1
- package/dist/types/temporal.js.map +0 -1
- package/dist/types/tuple.js.map +0 -1
- package/dist/types/type.js.map +0 -1
- package/dist/types/union.js.map +0 -1
- package/src/index.ts +0 -8
- package/src/temporal.ts +0 -1
- package/src/types/any.ts +0 -12
- package/src/types/array.ts +0 -48
- package/src/types/base.ts +0 -183
- package/src/types/boolean.ts +0 -12
- package/src/types/custom.ts +0 -79
- package/src/types/date.ts +0 -20
- package/src/types/enum.ts +0 -21
- package/src/types/literal.ts +0 -15
- package/src/types/never.ts +0 -12
- package/src/types/number.ts +0 -65
- package/src/types/object.ts +0 -163
- package/src/types/string.ts +0 -78
- package/src/types/temporal.ts +0 -154
- package/src/types/tuple.ts +0 -36
- package/src/types/type.ts +0 -31
- package/src/types/union.ts +0 -113
package/src/types/union.ts
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import type { ArrayMap } from '@nmtjs/common'
|
|
2
|
-
import * as zod from 'zod/v4-mini'
|
|
3
|
-
import { BaseType, type BaseTypeAny } from './base.ts'
|
|
4
|
-
import type { LiteralType } from './literal.ts'
|
|
5
|
-
import type { ObjectType, ObjectTypeProps } from './object.ts'
|
|
6
|
-
|
|
7
|
-
export class UnionType<
|
|
8
|
-
T extends readonly [BaseType, ...BaseType[]] = readonly [
|
|
9
|
-
BaseType,
|
|
10
|
-
...BaseType[],
|
|
11
|
-
],
|
|
12
|
-
> extends BaseType<
|
|
13
|
-
zod.ZodMiniUnion<ArrayMap<T, 'encodedZodType'>>,
|
|
14
|
-
zod.ZodMiniUnion<ArrayMap<T, 'decodedZodType'>>,
|
|
15
|
-
{ options: T }
|
|
16
|
-
> {
|
|
17
|
-
static factory<
|
|
18
|
-
T extends readonly [BaseType, ...BaseType[]] = readonly [
|
|
19
|
-
BaseType,
|
|
20
|
-
...BaseType[],
|
|
21
|
-
],
|
|
22
|
-
>(...options: T) {
|
|
23
|
-
const encoded = options.map((t) => t.encodedZodType) as ArrayMap<
|
|
24
|
-
T,
|
|
25
|
-
'encodedZodType'
|
|
26
|
-
>
|
|
27
|
-
const decoded = options.map((t) => t.decodedZodType) as ArrayMap<
|
|
28
|
-
T,
|
|
29
|
-
'decodedZodType'
|
|
30
|
-
>
|
|
31
|
-
return new UnionType<T>({
|
|
32
|
-
encodedZodType: zod.union(encoded),
|
|
33
|
-
decodedZodType: zod.union(decoded),
|
|
34
|
-
props: { options },
|
|
35
|
-
})
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export class IntersactionType<
|
|
40
|
-
T extends readonly [BaseType, BaseType] = readonly [BaseType, BaseType],
|
|
41
|
-
> extends BaseType<
|
|
42
|
-
zod.ZodMiniIntersection<T[0]['encodedZodType'], T[1]['encodedZodType']>,
|
|
43
|
-
zod.ZodMiniIntersection<T[0]['decodedZodType'], T[1]['decodedZodType']>,
|
|
44
|
-
{ options: T }
|
|
45
|
-
> {
|
|
46
|
-
static factory<
|
|
47
|
-
T extends readonly [BaseType, BaseType] = readonly [BaseType, BaseType],
|
|
48
|
-
>(...options: T) {
|
|
49
|
-
const [first, second] = options
|
|
50
|
-
return new IntersactionType<T>({
|
|
51
|
-
encodedZodType: zod.intersection(
|
|
52
|
-
first.encodedZodType,
|
|
53
|
-
second.encodedZodType,
|
|
54
|
-
),
|
|
55
|
-
decodedZodType: zod.intersection(
|
|
56
|
-
first.decodedZodType,
|
|
57
|
-
second.decodedZodType,
|
|
58
|
-
),
|
|
59
|
-
props: { options },
|
|
60
|
-
})
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export type DiscriminatedUnionProperties<K extends string = string> = {
|
|
65
|
-
[OK in K]: LiteralType<string>
|
|
66
|
-
} & {
|
|
67
|
-
[OK in string]: any
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export type DiscriminatedUnionOptionType<K extends string> = ObjectType<
|
|
71
|
-
ObjectTypeProps & { [_ in K]: BaseTypeAny }
|
|
72
|
-
>
|
|
73
|
-
|
|
74
|
-
export class DiscriminatedUnionType<
|
|
75
|
-
K extends string = string,
|
|
76
|
-
T extends
|
|
77
|
-
readonly DiscriminatedUnionOptionType<K>[] = DiscriminatedUnionOptionType<K>[],
|
|
78
|
-
> extends BaseType<
|
|
79
|
-
zod.ZodMiniDiscriminatedUnion<ArrayMap<T, 'encodedZodType'>>,
|
|
80
|
-
zod.ZodMiniDiscriminatedUnion<ArrayMap<T, 'decodedZodType'>>,
|
|
81
|
-
{
|
|
82
|
-
key: K
|
|
83
|
-
options: T
|
|
84
|
-
}
|
|
85
|
-
> {
|
|
86
|
-
static factory<
|
|
87
|
-
K extends string = string,
|
|
88
|
-
T extends
|
|
89
|
-
readonly DiscriminatedUnionOptionType<K>[] = DiscriminatedUnionOptionType<K>[],
|
|
90
|
-
>(key: K, ...options: T) {
|
|
91
|
-
const encoded = options.map((t) => t.encodedZodType) as ArrayMap<
|
|
92
|
-
T,
|
|
93
|
-
'encodedZodType'
|
|
94
|
-
>
|
|
95
|
-
const decoded = options.map((t) => t.decodedZodType) as ArrayMap<
|
|
96
|
-
T,
|
|
97
|
-
'decodedZodType'
|
|
98
|
-
>
|
|
99
|
-
return new DiscriminatedUnionType<K, T>({
|
|
100
|
-
// @ts-expect-error
|
|
101
|
-
encodedZodType: zod.discriminatedUnion(key, encoded),
|
|
102
|
-
// @ts-expect-error
|
|
103
|
-
decodedZodType: zod.discriminatedUnion(key, decoded),
|
|
104
|
-
props: { key, options },
|
|
105
|
-
})
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export const union = UnionType.factory
|
|
110
|
-
export const or = UnionType.factory
|
|
111
|
-
export const intersection = IntersactionType.factory
|
|
112
|
-
export const and = IntersactionType.factory
|
|
113
|
-
export const discriminatedUnion = DiscriminatedUnionType.factory
|