@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.
Files changed (73) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.js +1 -3
  3. package/dist/temporal.d.ts +1 -0
  4. package/dist/temporal.js +0 -2
  5. package/dist/types/any.d.ts +6 -0
  6. package/dist/types/any.js +6 -6
  7. package/dist/types/array.d.ts +13 -0
  8. package/dist/types/array.js +21 -23
  9. package/dist/types/base.d.ts +62 -0
  10. package/dist/types/base.js +67 -65
  11. package/dist/types/boolean.d.ts +6 -0
  12. package/dist/types/boolean.js +6 -6
  13. package/dist/types/custom.d.ts +14 -0
  14. package/dist/types/custom.js +21 -21
  15. package/dist/types/date.d.ts +6 -0
  16. package/dist/types/date.js +8 -10
  17. package/dist/types/enum.d.ts +10 -0
  18. package/dist/types/enum.js +7 -9
  19. package/dist/types/literal.d.ts +8 -0
  20. package/dist/types/literal.js +7 -9
  21. package/dist/types/never.d.ts +6 -0
  22. package/dist/types/never.js +6 -6
  23. package/dist/types/number.d.ts +23 -0
  24. package/dist/types/number.js +36 -38
  25. package/dist/types/object.d.ts +43 -0
  26. package/dist/types/object.js +39 -44
  27. package/dist/types/string.d.ts +22 -0
  28. package/dist/types/string.js +49 -51
  29. package/dist/types/temporal.d.ts +45 -0
  30. package/dist/types/temporal.js +74 -76
  31. package/dist/types/tuple.d.ts +13 -0
  32. package/dist/types/tuple.js +12 -15
  33. package/dist/types/type.d.ts +24 -0
  34. package/dist/types/type.js +0 -2
  35. package/dist/types/union.d.ts +40 -0
  36. package/dist/types/union.js +29 -32
  37. package/package.json +8 -7
  38. package/dist/index.js.map +0 -1
  39. package/dist/temporal.js.map +0 -1
  40. package/dist/types/any.js.map +0 -1
  41. package/dist/types/array.js.map +0 -1
  42. package/dist/types/base.js.map +0 -1
  43. package/dist/types/boolean.js.map +0 -1
  44. package/dist/types/custom.js.map +0 -1
  45. package/dist/types/date.js.map +0 -1
  46. package/dist/types/enum.js.map +0 -1
  47. package/dist/types/literal.js.map +0 -1
  48. package/dist/types/never.js.map +0 -1
  49. package/dist/types/number.js.map +0 -1
  50. package/dist/types/object.js.map +0 -1
  51. package/dist/types/string.js.map +0 -1
  52. package/dist/types/temporal.js.map +0 -1
  53. package/dist/types/tuple.js.map +0 -1
  54. package/dist/types/type.js.map +0 -1
  55. package/dist/types/union.js.map +0 -1
  56. package/src/index.ts +0 -8
  57. package/src/temporal.ts +0 -1
  58. package/src/types/any.ts +0 -12
  59. package/src/types/array.ts +0 -48
  60. package/src/types/base.ts +0 -183
  61. package/src/types/boolean.ts +0 -12
  62. package/src/types/custom.ts +0 -79
  63. package/src/types/date.ts +0 -20
  64. package/src/types/enum.ts +0 -21
  65. package/src/types/literal.ts +0 -15
  66. package/src/types/never.ts +0 -12
  67. package/src/types/number.ts +0 -65
  68. package/src/types/object.ts +0 -163
  69. package/src/types/string.ts +0 -78
  70. package/src/types/temporal.ts +0 -154
  71. package/src/types/tuple.ts +0 -36
  72. package/src/types/type.ts +0 -31
  73. package/src/types/union.ts +0 -113
@@ -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