typia 13.0.0-dev.20260514 → 13.0.0-dev.20260520
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/native/core/factories/MetadataFactory.go +480 -480
- package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +39 -39
- package/native/core/factories/internal/metadata/MetadataHelper.go +208 -206
- package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +26 -26
- package/package.json +5 -5
|
@@ -1,63 +1,63 @@
|
|
|
1
1
|
package metadata
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
nativechecker "github.com/microsoft/typescript-go/shim/checker"
|
|
5
|
+
schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
6
6
|
)
|
|
7
7
|
|
|
8
8
|
type MetadataFactory_IOptions struct {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
Escape bool
|
|
10
|
+
Absorb bool
|
|
11
|
+
Constant bool
|
|
12
|
+
Functional bool
|
|
13
|
+
Validate func(props struct {
|
|
14
|
+
Metadata *schemametadata.MetadataSchema
|
|
15
|
+
Explore MetadataFactory_IExplore
|
|
16
|
+
Top *schemametadata.MetadataSchema
|
|
17
|
+
}) []string
|
|
18
|
+
OnError func(node any, message string)
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
type MetadataFactory_IError struct {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
Name string
|
|
23
|
+
Explore MetadataFactory_IExplore
|
|
24
|
+
Messages []string
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
type MetadataFactory_IExplore struct {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
Top bool
|
|
29
|
+
Object *schemametadata.MetadataObjectType
|
|
30
|
+
Property any
|
|
31
|
+
Parameter any
|
|
32
|
+
Nested any
|
|
33
|
+
Aliased bool
|
|
34
|
+
Escaped bool
|
|
35
|
+
Output bool
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
type MetadataFactory_IExplore_Function func(MetadataFactory_IExplore) MetadataFactory_IExplore
|
|
39
39
|
|
|
40
40
|
type IMetadataIteratorProps struct {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
Options MetadataFactory_IOptions
|
|
42
|
+
Checker *nativechecker.Checker
|
|
43
|
+
Components *schemametadata.MetadataCollection
|
|
44
|
+
Errors *[]MetadataFactory_IError
|
|
45
|
+
Metadata *schemametadata.MetadataSchema
|
|
46
|
+
Type *nativechecker.Type
|
|
47
|
+
Explore MetadataFactory_IExplore
|
|
48
|
+
Intersected bool
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
var MetadataTypeTagAnalyzer func(props struct {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
Errors *[]MetadataFactory_IError
|
|
53
|
+
Type string
|
|
54
|
+
Objects []*schemametadata.MetadataObjectType
|
|
55
|
+
Explore MetadataFactory_IExplore
|
|
56
56
|
}) []schemametadata.IMetadataTypeTag
|
|
57
57
|
|
|
58
58
|
var MetadataCommentTagAnalyzer func(props struct {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
Errors *[]MetadataFactory_IError
|
|
60
|
+
Metadata *schemametadata.MetadataSchema
|
|
61
|
+
Tags []schemametadata.IJsDocTagInfo
|
|
62
|
+
Explore MetadataFactory_IExplore
|
|
63
63
|
})
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
package metadata
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
|
-
|
|
4
|
+
"strings"
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
nativeast "github.com/microsoft/typescript-go/shim/ast"
|
|
7
|
+
nativechecker "github.com/microsoft/typescript-go/shim/checker"
|
|
8
|
+
nativescanner "github.com/microsoft/typescript-go/shim/scanner"
|
|
9
|
+
schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
10
10
|
)
|
|
11
11
|
|
|
12
12
|
type metadataHelperNamespace struct{}
|
|
@@ -14,245 +14,247 @@ type metadataHelperNamespace struct{}
|
|
|
14
14
|
var MetadataHelper = metadataHelperNamespace{}
|
|
15
15
|
|
|
16
16
|
func (metadataHelperNamespace) Literal_to_metadata(key string) *schemametadata.MetadataSchema {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
metadata := schemametadata.MetadataSchema_initialize()
|
|
18
|
+
metadata.Constants = append(metadata.Constants, schemametadata.MetadataConstant_create(schemametadata.MetadataConstant{
|
|
19
|
+
Type: "string",
|
|
20
|
+
Values: []*schemametadata.MetadataConstantValue{
|
|
21
|
+
schemametadata.MetadataConstantValue_create(schemametadata.MetadataConstantValue{
|
|
22
|
+
Value: key,
|
|
23
|
+
Tags: [][]schemametadata.IMetadataTypeTag{},
|
|
24
|
+
}),
|
|
25
|
+
},
|
|
26
|
+
}))
|
|
27
|
+
return metadata
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
func metadata_array_util_add_bool(array *[]bool, value bool) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
for _, elem := range *array {
|
|
32
|
+
if elem == value {
|
|
33
|
+
return
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
*array = append(*array, value)
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
func metadata_type_full_name(checker *nativechecker.Checker, typ *nativechecker.Type) string {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
40
|
+
if checker == nil || typ == nil {
|
|
41
|
+
return ""
|
|
42
|
+
}
|
|
43
|
+
if typ.IsUnion() || typ.IsIntersection() {
|
|
44
|
+
joiner := " | "
|
|
45
|
+
if typ.IsIntersection() {
|
|
46
|
+
joiner = " & "
|
|
47
|
+
}
|
|
48
|
+
children := typ.Types()
|
|
49
|
+
names := make([]string, 0, len(children))
|
|
50
|
+
for _, child := range children {
|
|
51
|
+
names = append(names, metadata_type_full_name(checker, child))
|
|
52
|
+
}
|
|
53
|
+
return strings.Join(names, joiner)
|
|
54
|
+
}
|
|
55
|
+
return checker.TypeToString(typ)
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
func metadata_get_type_arguments(checker *nativechecker.Checker, typ *nativechecker.Type) (output []*nativechecker.Type) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
if checker == nil || typ == nil {
|
|
60
|
+
return nil
|
|
61
|
+
}
|
|
62
|
+
defer func() {
|
|
63
|
+
if recover() != nil {
|
|
64
|
+
output = nil
|
|
65
|
+
}
|
|
66
|
+
}()
|
|
67
|
+
return checker.GetTypeArguments(typ)
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
func metadata_get_function_node(typ *nativechecker.Type) *nativeast.Node {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
71
|
+
if typ == nil {
|
|
72
|
+
return nil
|
|
73
|
+
}
|
|
74
|
+
symbol := typ.Symbol()
|
|
75
|
+
if symbol == nil || len(symbol.Declarations) == 0 {
|
|
76
|
+
return nil
|
|
77
|
+
}
|
|
78
|
+
node := symbol.Declarations[0]
|
|
79
|
+
if nativeast.IsFunctionLike(node) {
|
|
80
|
+
return node
|
|
81
|
+
}
|
|
82
|
+
if nativeast.IsPropertyAssignment(node) {
|
|
83
|
+
initializer := node.AsPropertyAssignment().Initializer
|
|
84
|
+
if nativeast.IsFunctionLike(initializer) {
|
|
85
|
+
return initializer
|
|
86
|
+
}
|
|
87
|
+
return nil
|
|
88
|
+
}
|
|
89
|
+
if nativeast.IsPropertyDeclaration(node) {
|
|
90
|
+
initializer := node.AsPropertyDeclaration().Initializer
|
|
91
|
+
if nativeast.IsFunctionLike(initializer) {
|
|
92
|
+
return initializer
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return nil
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
func metadata_get_return_type_of_class_method(props struct {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
Checker *nativechecker.Checker
|
|
100
|
+
Class *nativechecker.Type
|
|
101
|
+
Function string
|
|
102
102
|
}) *nativechecker.Type {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
103
|
+
if props.Checker == nil || props.Class == nil {
|
|
104
|
+
return nil
|
|
105
|
+
}
|
|
106
|
+
symbol := props.Checker.GetPropertyOfType(props.Class, props.Function)
|
|
107
|
+
if symbol == nil || symbol.ValueDeclaration == nil {
|
|
108
|
+
return nil
|
|
109
|
+
}
|
|
110
|
+
functor := props.Checker.GetTypeOfSymbolAtLocation(symbol, symbol.ValueDeclaration)
|
|
111
|
+
signatures := props.Checker.GetSignaturesOfType(functor, nativechecker.SignatureKindCall)
|
|
112
|
+
if len(signatures) == 0 {
|
|
113
|
+
return nil
|
|
114
|
+
}
|
|
115
|
+
return props.Checker.GetReturnTypeOfSignature(signatures[0])
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
func metadata_node_js_doc_tags(symbol *nativeast.Symbol) []schemametadata.IJsDocTagInfo {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
119
|
+
output := []schemametadata.IJsDocTagInfo{}
|
|
120
|
+
for _, node := range metadata_node_declarations(symbol) {
|
|
121
|
+
for _, jsdoc := range node.JSDoc(nil) {
|
|
122
|
+
doc := jsdoc.AsJSDoc()
|
|
123
|
+
if doc == nil || doc.Tags == nil {
|
|
124
|
+
continue
|
|
125
|
+
}
|
|
126
|
+
for _, tag := range doc.Tags.Nodes {
|
|
127
|
+
if tag == nil || tag.TagName() == nil {
|
|
128
|
+
continue
|
|
129
|
+
}
|
|
130
|
+
texts := []schemametadata.IJsDocTagInfo_IText{}
|
|
131
|
+
if name := metadata_js_doc_parameter_name(tag); name != "" {
|
|
132
|
+
texts = append(texts, schemametadata.IJsDocTagInfo_IText{
|
|
133
|
+
Kind: "parameterName",
|
|
134
|
+
Text: name,
|
|
135
|
+
})
|
|
136
|
+
}
|
|
137
|
+
if text := metadata_js_doc_type_expression_text(tag); text != "" {
|
|
138
|
+
texts = append(texts, schemametadata.IJsDocTagInfo_IText{
|
|
139
|
+
Kind: "text",
|
|
140
|
+
Text: text,
|
|
141
|
+
})
|
|
142
|
+
}
|
|
143
|
+
if text := metadata_js_doc_comment_text(tag.CommentList()); text != "" {
|
|
144
|
+
texts = append(texts, schemametadata.IJsDocTagInfo_IText{
|
|
145
|
+
Kind: "text",
|
|
146
|
+
Text: text,
|
|
147
|
+
})
|
|
148
|
+
}
|
|
149
|
+
output = append(output, schemametadata.IJsDocTagInfo{
|
|
150
|
+
Name: tag.TagName().Text(),
|
|
151
|
+
Text: texts,
|
|
152
|
+
})
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return output
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
func metadata_node_description(symbol *nativeast.Symbol) *string {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
160
|
+
for _, node := range metadata_node_declarations(symbol) {
|
|
161
|
+
for _, jsdoc := range node.JSDoc(nil) {
|
|
162
|
+
doc := jsdoc.AsJSDoc()
|
|
163
|
+
if doc == nil {
|
|
164
|
+
continue
|
|
165
|
+
}
|
|
166
|
+
if text := metadata_js_doc_comment_text(doc.Comment); text != "" {
|
|
167
|
+
return &text
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return nil
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
func metadata_is_internal(symbol *nativeast.Symbol) bool {
|
|
175
|
-
|
|
175
|
+
return false
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
func metadata_node_declarations(symbol *nativeast.Symbol) []*nativeast.Node {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
179
|
+
if symbol == nil {
|
|
180
|
+
return nil
|
|
181
|
+
}
|
|
182
|
+
output := []*nativeast.Node{}
|
|
183
|
+
visited := map[*nativeast.Node]bool{}
|
|
184
|
+
appendNode := func(node *nativeast.Node) {
|
|
185
|
+
if node != nil && visited[node] == false {
|
|
186
|
+
visited[node] = true
|
|
187
|
+
output = append(output, node)
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
appendNode(symbol.ValueDeclaration)
|
|
191
|
+
for _, node := range symbol.Declarations {
|
|
192
|
+
appendNode(node)
|
|
193
|
+
}
|
|
194
|
+
return output
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
func metadata_js_doc_parameter_name(tag *nativeast.Node) string {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
198
|
+
if tag == nil {
|
|
199
|
+
return ""
|
|
200
|
+
}
|
|
201
|
+
if tag.Kind.String() != "KindJSDocParameterTag" && tag.Kind.String() != "KindJSDocPropertyTag" {
|
|
202
|
+
return ""
|
|
203
|
+
}
|
|
204
|
+
// `name` is a DeclarationName: typically an Identifier, but for nested
|
|
205
|
+
// JSDoc parameter names like `@param obj.field description` the parser
|
|
206
|
+
// produces a QualifiedName, and upstream's (*Node).Text() panics with
|
|
207
|
+
// `Unhandled case in Node.Text: *ast.QualifiedName` if we call .Text()
|
|
208
|
+
// directly. NodeText in the ttsc shim covers QualifiedName and any
|
|
209
|
+
// other DeclarationName Kind that upstream's switch doesn't.
|
|
210
|
+
return nativeast.NodeText(tag.AsJSDocParameterOrPropertyTag().Name())
|
|
209
211
|
}
|
|
210
212
|
|
|
211
213
|
func metadata_js_doc_type_expression_text(tag *nativeast.Node) string {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
214
|
+
if tag == nil {
|
|
215
|
+
return ""
|
|
216
|
+
}
|
|
217
|
+
switch tag.Kind {
|
|
218
|
+
case nativeast.KindJSDocTypeTag,
|
|
219
|
+
nativeast.KindJSDocParameterTag,
|
|
220
|
+
nativeast.KindJSDocPropertyTag,
|
|
221
|
+
nativeast.KindJSDocReturnTag,
|
|
222
|
+
nativeast.KindJSDocTypedefTag,
|
|
223
|
+
nativeast.KindJSDocSatisfiesTag,
|
|
224
|
+
nativeast.KindJSDocThrowsTag:
|
|
225
|
+
default:
|
|
226
|
+
return ""
|
|
227
|
+
}
|
|
228
|
+
expr := tag.TypeExpression()
|
|
229
|
+
if expr == nil {
|
|
230
|
+
return ""
|
|
231
|
+
}
|
|
232
|
+
typ := expr.Type()
|
|
233
|
+
if typ == nil {
|
|
234
|
+
return ""
|
|
235
|
+
}
|
|
236
|
+
return metadata_clean_js_doc_text(nativescanner.GetTextOfNode(typ))
|
|
235
237
|
}
|
|
236
238
|
|
|
237
239
|
func metadata_js_doc_comment_text(list *nativeast.NodeList) string {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
240
|
+
if list == nil {
|
|
241
|
+
return ""
|
|
242
|
+
}
|
|
243
|
+
parts := []string{}
|
|
244
|
+
for _, node := range list.Nodes {
|
|
245
|
+
if node != nil {
|
|
246
|
+
parts = append(parts, node.Text())
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return metadata_clean_js_doc_text(strings.Join(parts, ""))
|
|
248
250
|
}
|
|
249
251
|
|
|
250
252
|
func metadata_clean_js_doc_text(text string) string {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
253
|
+
text = strings.ReplaceAll(text, "\r\n", "\n")
|
|
254
|
+
text = strings.ReplaceAll(text, "\r", "\n")
|
|
255
|
+
lines := strings.Split(text, "\n")
|
|
256
|
+
for i, line := range lines {
|
|
257
|
+
lines[i] = strings.TrimRight(line, " \t")
|
|
258
|
+
}
|
|
259
|
+
return strings.TrimSpace(strings.Join(lines, "\n"))
|
|
258
260
|
}
|
|
@@ -3,32 +3,32 @@ package metadata
|
|
|
3
3
|
import schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
4
4
|
|
|
5
5
|
func Iterate_metadata_comment_tags(props struct {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
Errors *[]MetadataFactory_IError
|
|
7
|
+
Object *schemametadata.MetadataObjectType
|
|
8
8
|
}) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
if props.Object == nil || props.Object.Tagged_ == true || MetadataCommentTagAnalyzer == nil {
|
|
10
|
+
return
|
|
11
|
+
}
|
|
12
|
+
props.Object.Tagged_ = true
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
14
|
+
for _, property := range props.Object.Properties {
|
|
15
|
+
if property == nil || property.Value == nil || len(property.JsDocTags) == 0 {
|
|
16
|
+
continue
|
|
17
|
+
}
|
|
18
|
+
MetadataCommentTagAnalyzer(struct {
|
|
19
|
+
Errors *[]MetadataFactory_IError
|
|
20
|
+
Metadata *schemametadata.MetadataSchema
|
|
21
|
+
Tags []schemametadata.IJsDocTagInfo
|
|
22
|
+
Explore MetadataFactory_IExplore
|
|
23
|
+
}{
|
|
24
|
+
Errors: props.Errors,
|
|
25
|
+
Metadata: property.Value,
|
|
26
|
+
Tags: property.JsDocTags,
|
|
27
|
+
Explore: MetadataFactory_IExplore{
|
|
28
|
+
Top: false,
|
|
29
|
+
Object: props.Object,
|
|
30
|
+
Property: property,
|
|
31
|
+
},
|
|
32
|
+
})
|
|
33
|
+
}
|
|
34
34
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typia",
|
|
3
|
-
"version": "13.0.0-dev.
|
|
3
|
+
"version": "13.0.0-dev.20260520",
|
|
4
4
|
"description": "Superfast runtime validators with only one line",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"commander": "^10.0.0",
|
|
45
45
|
"inquirer": "^8.2.5",
|
|
46
46
|
"randexp": "^0.5.3",
|
|
47
|
-
"@typia/interface": "^13.0.0-dev.
|
|
48
|
-
"@typia/utils": "^13.0.0-dev.
|
|
47
|
+
"@typia/interface": "^13.0.0-dev.20260520",
|
|
48
|
+
"@typia/utils": "^13.0.0-dev.20260520"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@types/node": "^25.3.0",
|
|
55
55
|
"@typescript-eslint/eslint-plugin": "^8.1.0",
|
|
56
56
|
"@typescript-eslint/parser": "^8.1.0",
|
|
57
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
57
|
+
"@typescript/native-preview": "7.0.0-dev.20260519.1",
|
|
58
58
|
"chalk": "^4.0.0",
|
|
59
59
|
"eslint-plugin-deprecation": "^3.0.0",
|
|
60
60
|
"rimraf": "^6.1.2",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"rollup-plugin-node-externals": "^8.1.2",
|
|
64
64
|
"suppress-warnings": "^1.0.2",
|
|
65
65
|
"tinyglobby": "^0.2.12",
|
|
66
|
-
"ttsc": "^0.
|
|
66
|
+
"ttsc": "^0.12.3"
|
|
67
67
|
},
|
|
68
68
|
"sideEffects": [
|
|
69
69
|
"./lib/_virtual/*.mjs",
|