typia 4.1.6-dev.20230213 → 4.1.7-dev.20230715

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 (37) hide show
  1. package/lib/factories/MetadataCollection.js +1 -0
  2. package/lib/factories/MetadataCollection.js.map +1 -1
  3. package/lib/factories/internal/metadata/{emplace_metadata_definition.d.ts → emplace_metadata_alias.d.ts} +1 -1
  4. package/lib/factories/internal/metadata/{emplace_metadata_definition.js → emplace_metadata_alias.js} +17 -5
  5. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -0
  6. package/lib/factories/internal/metadata/iterate_metadata_alias.js +2 -2
  7. package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
  8. package/lib/factories/internal/metadata/iterate_metadata_collection.js +4 -4
  9. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -1
  10. package/lib/metadata/IMetadataAlias.d.ts +3 -1
  11. package/lib/metadata/MetadataAlias.d.ts +2 -0
  12. package/lib/metadata/MetadataAlias.js +4 -1
  13. package/lib/metadata/MetadataAlias.js.map +1 -1
  14. package/lib/programmers/LiteralsProgrammer.js +3 -2
  15. package/lib/programmers/LiteralsProgrammer.js.map +1 -1
  16. package/lib/programmers/internal/application_alias.js +21 -3
  17. package/lib/programmers/internal/application_alias.js.map +1 -1
  18. package/lib/programmers/internal/application_object.js +1 -1
  19. package/lib/programmers/internal/application_object.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/factories/MetadataCollection.ts +1 -0
  22. package/src/factories/MetadataTagFactory.ts +355 -355
  23. package/src/factories/internal/metadata/{emplace_metadata_definition.ts → emplace_metadata_alias.ts} +7 -2
  24. package/src/factories/internal/metadata/iterate_metadata_alias.ts +4 -4
  25. package/src/factories/internal/metadata/iterate_metadata_collection.ts +4 -4
  26. package/src/metadata/IMetadataAlias.ts +3 -1
  27. package/src/metadata/IMetadataTag.ts +105 -105
  28. package/src/metadata/Metadata.ts +603 -603
  29. package/src/metadata/MetadataAlias.ts +6 -1
  30. package/src/module.ts +2038 -2038
  31. package/src/programmers/LiteralsProgrammer.ts +63 -62
  32. package/src/programmers/internal/application_alias.ts +22 -1
  33. package/src/programmers/internal/application_number.ts +74 -74
  34. package/src/programmers/internal/application_object.ts +1 -1
  35. package/src/transformers/CallExpressionTransformer.ts +179 -179
  36. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +104 -104
  37. package/lib/factories/internal/metadata/emplace_metadata_definition.js.map +0 -1
@@ -7,9 +7,10 @@ import { ArrayUtil } from "../../../utils/ArrayUtil";
7
7
 
8
8
  import { MetadataCollection } from "../../MetadataCollection";
9
9
  import { MetadataFactory } from "../../MetadataFactory";
10
+ import { MetadataTagFactory } from "../../MetadataTagFactory";
10
11
  import { explore_metadata } from "./explore_metadata";
11
12
 
12
- export const emplace_metadata_definition =
13
+ export const emplace_metadata_alias =
13
14
  (checker: ts.TypeChecker) =>
14
15
  (options: MetadataFactory.IOptions) =>
15
16
  (collection: MetadataCollection) =>
@@ -30,6 +31,10 @@ export const emplace_metadata_definition =
30
31
  true,
31
32
  );
32
33
  closure(value);
33
-
34
+ alias.tags.push(
35
+ ...MetadataTagFactory.generate(value)(alias.jsDocTags)(
36
+ () => alias.name,
37
+ ),
38
+ );
34
39
  return alias;
35
40
  };
@@ -7,7 +7,7 @@ import { ArrayUtil } from "../../../utils/ArrayUtil";
7
7
 
8
8
  import { MetadataCollection } from "../../MetadataCollection";
9
9
  import { MetadataFactory } from "../../MetadataFactory";
10
- import { emplace_metadata_definition } from "./emplace_metadata_definition";
10
+ import { emplace_metadata_alias } from "./emplace_metadata_alias";
11
11
 
12
12
  export const iterate_metadata_alias =
13
13
  (checker: ts.TypeChecker) =>
@@ -22,9 +22,9 @@ export const iterate_metadata_alias =
22
22
  if (node === undefined) return false;
23
23
 
24
24
  // CONSTRUCT DEFINITION
25
- const alias: MetadataAlias = emplace_metadata_definition(checker)(
26
- options,
27
- )(collection)(type, meta.nullable);
25
+ const alias: MetadataAlias = emplace_metadata_alias(checker)(options)(
26
+ collection,
27
+ )(type, meta.nullable);
28
28
  ArrayUtil.add(meta.aliases, alias, (elem) => elem.name === alias.name);
29
29
  return true;
30
30
  };
@@ -48,8 +48,8 @@ const isArrayRecursive =
48
48
  meta.arrays.some(
49
49
  (a) => a === array || isArrayRecursive(visited)(array)(a.value),
50
50
  ) ||
51
- meta.aliases.some((d) =>
52
- isArrayRecursive(visited)(array)(d.value),
51
+ meta.aliases.some((alias) =>
52
+ isArrayRecursive(visited)(array)(alias.value),
53
53
  ) ||
54
54
  meta.tuples.some(
55
55
  (t) =>
@@ -83,8 +83,8 @@ const isTupleRecursive =
83
83
  ) ||
84
84
  meta.maps.some((m) => isTupleRecursive(visited)(tuple)(m.value)) ||
85
85
  meta.sets.some((s) => isTupleRecursive(visited)(tuple)(s)) ||
86
- meta.aliases.some((d) =>
87
- isTupleRecursive(visited)(tuple)(d.value),
86
+ meta.aliases.some((alias) =>
87
+ isTupleRecursive(visited)(tuple)(alias.value),
88
88
  ) ||
89
89
  (meta.resolved !== null &&
90
90
  isTupleRecursive(visited)(tuple)(meta.resolved.returns)) ||
@@ -1,12 +1,14 @@
1
1
  import { IJsDocTagInfo } from "./IJsDocTagInfo";
2
2
  import { IMetadata } from "./IMetadata";
3
+ import { IMetadataTag } from "./IMetadataTag";
3
4
 
4
5
  export interface IMetadataAlias {
5
6
  name: string;
6
7
  value: IMetadata;
8
+ nullables: boolean[];
7
9
 
8
10
  description: string | null;
11
+ tags: IMetadataTag[];
9
12
  jsDocTags: IJsDocTagInfo[];
10
13
  recursive: boolean;
11
- nullables: boolean[];
12
14
  }
@@ -1,105 +1,105 @@
1
- export type IMetadataTag =
2
- // NUMBER
3
- | IMetadataTag.IType
4
- | IMetadataTag.IMinimum
5
- | IMetadataTag.IMaximum
6
- | IMetadataTag.IExclusiveMinimum
7
- | IMetadataTag.IExclusiveMaximum
8
- | IMetadataTag.IMultipleOf
9
- | IMetadataTag.IStep
10
- // STRING
11
- | IMetadataTag.IFormat
12
- | IMetadataTag.IPattern
13
- | IMetadataTag.ILength
14
- | IMetadataTag.IMinLength
15
- | IMetadataTag.IMaxLength
16
- // ARRAY
17
- | IMetadataTag.IItems
18
- | IMetadataTag.IMinItems
19
- | IMetadataTag.IMaxItems;
20
-
21
- export namespace IMetadataTag {
22
- /* -----------------------------------------------------------
23
- NUMBER
24
- ----------------------------------------------------------- */
25
- export interface IType {
26
- kind: "type";
27
- value: "int" | "uint";
28
- }
29
-
30
- export interface IMinimum {
31
- kind: "minimum";
32
- value: number;
33
- }
34
-
35
- export interface IMaximum {
36
- kind: "maximum";
37
- value: number;
38
- }
39
-
40
- export interface IExclusiveMinimum {
41
- kind: "exclusiveMinimum";
42
- value: number;
43
- }
44
-
45
- export interface IExclusiveMaximum {
46
- kind: "exclusiveMaximum";
47
- value: number;
48
- }
49
-
50
- export interface IMultipleOf {
51
- kind: "multipleOf";
52
- value: number;
53
- }
54
-
55
- export interface IStep {
56
- kind: "step";
57
- value: number;
58
- }
59
-
60
- /* -----------------------------------------------------------
61
- STRING
62
- ----------------------------------------------------------- */
63
- export interface IFormat {
64
- kind: "format";
65
- value: "uuid" | "email" | "url" | "ipv4" | "ipv6" | "date" | "datetime";
66
- }
67
-
68
- export interface IPattern {
69
- kind: "pattern";
70
- value: string;
71
- }
72
-
73
- export interface ILength {
74
- kind: "length";
75
- value: number;
76
- }
77
-
78
- export interface IMinLength {
79
- kind: "minLength";
80
- value: number;
81
- }
82
-
83
- export interface IMaxLength {
84
- kind: "maxLength";
85
- value: number;
86
- }
87
-
88
- /* -----------------------------------------------------------
89
- ARRAY
90
- ----------------------------------------------------------- */
91
- export interface IItems {
92
- kind: "items";
93
- value: number;
94
- }
95
-
96
- export interface IMinItems {
97
- kind: "minItems";
98
- value: number;
99
- }
100
-
101
- export interface IMaxItems {
102
- kind: "maxItems";
103
- value: number;
104
- }
105
- }
1
+ export type IMetadataTag =
2
+ // NUMBER
3
+ | IMetadataTag.IType
4
+ | IMetadataTag.IMinimum
5
+ | IMetadataTag.IMaximum
6
+ | IMetadataTag.IExclusiveMinimum
7
+ | IMetadataTag.IExclusiveMaximum
8
+ | IMetadataTag.IMultipleOf
9
+ | IMetadataTag.IStep
10
+ // STRING
11
+ | IMetadataTag.IFormat
12
+ | IMetadataTag.IPattern
13
+ | IMetadataTag.ILength
14
+ | IMetadataTag.IMinLength
15
+ | IMetadataTag.IMaxLength
16
+ // ARRAY
17
+ | IMetadataTag.IItems
18
+ | IMetadataTag.IMinItems
19
+ | IMetadataTag.IMaxItems;
20
+
21
+ export namespace IMetadataTag {
22
+ /* -----------------------------------------------------------
23
+ NUMBER
24
+ ----------------------------------------------------------- */
25
+ export interface IType {
26
+ kind: "type";
27
+ value: "int" | "uint";
28
+ }
29
+
30
+ export interface IMinimum {
31
+ kind: "minimum";
32
+ value: number;
33
+ }
34
+
35
+ export interface IMaximum {
36
+ kind: "maximum";
37
+ value: number;
38
+ }
39
+
40
+ export interface IExclusiveMinimum {
41
+ kind: "exclusiveMinimum";
42
+ value: number;
43
+ }
44
+
45
+ export interface IExclusiveMaximum {
46
+ kind: "exclusiveMaximum";
47
+ value: number;
48
+ }
49
+
50
+ export interface IMultipleOf {
51
+ kind: "multipleOf";
52
+ value: number;
53
+ }
54
+
55
+ export interface IStep {
56
+ kind: "step";
57
+ value: number;
58
+ }
59
+
60
+ /* -----------------------------------------------------------
61
+ STRING
62
+ ----------------------------------------------------------- */
63
+ export interface IFormat {
64
+ kind: "format";
65
+ value: "uuid" | "email" | "url" | "ipv4" | "ipv6" | "date" | "datetime";
66
+ }
67
+
68
+ export interface IPattern {
69
+ kind: "pattern";
70
+ value: string;
71
+ }
72
+
73
+ export interface ILength {
74
+ kind: "length";
75
+ value: number;
76
+ }
77
+
78
+ export interface IMinLength {
79
+ kind: "minLength";
80
+ value: number;
81
+ }
82
+
83
+ export interface IMaxLength {
84
+ kind: "maxLength";
85
+ value: number;
86
+ }
87
+
88
+ /* -----------------------------------------------------------
89
+ ARRAY
90
+ ----------------------------------------------------------- */
91
+ export interface IItems {
92
+ kind: "items";
93
+ value: number;
94
+ }
95
+
96
+ export interface IMinItems {
97
+ kind: "minItems";
98
+ value: number;
99
+ }
100
+
101
+ export interface IMaxItems {
102
+ kind: "maxItems";
103
+ value: number;
104
+ }
105
+ }