typia 7.0.0-dev.20240924 → 7.0.0-dev.20240929
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/lib/factories/internal/metadata/emplace_metadata_object.js +2 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
- package/lib/index.mjs +1 -0
- package/lib/index.mjs.map +1 -1
- package/lib/programmers/AssertProgrammer.d.ts +1 -1
- package/lib/programmers/AssertProgrammer.js +169 -127
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.d.ts +70 -15
- package/lib/programmers/CheckerProgrammer.js +998 -638
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +5 -1
- package/lib/programmers/FeatureProgrammer.js +15 -15
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.d.ts +25 -4
- package/lib/programmers/IsProgrammer.js +54 -39
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +110 -97
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +68 -35
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmApplicationProgrammer.js +16 -2
- package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +62 -15
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +39 -11
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.js +62 -15
- package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +17 -3
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/tags/Example.d.ts +14 -0
- package/lib/tags/Example.js +3 -0
- package/lib/tags/Example.js.map +1 -0
- package/lib/tags/Examples.d.ts +10 -0
- package/lib/tags/Examples.js +3 -0
- package/lib/tags/Examples.js.map +1 -0
- package/lib/tags/index.d.ts +2 -0
- package/lib/tags/index.js +2 -0
- package/lib/tags/index.js.map +1 -1
- package/package.json +2 -2
- package/src/factories/internal/metadata/emplace_metadata_object.ts +2 -1
- package/src/programmers/AssertProgrammer.ts +185 -143
- package/src/programmers/CheckerProgrammer.ts +1380 -998
- package/src/programmers/FeatureProgrammer.ts +37 -31
- package/src/programmers/IsProgrammer.ts +94 -66
- package/src/programmers/ValidateProgrammer.ts +149 -137
- package/src/programmers/helpers/UnionExplorer.ts +1 -1
- package/src/programmers/json/JsonStringifyProgrammer.ts +56 -35
- package/src/programmers/llm/LlmApplicationProgrammer.ts +51 -32
- package/src/programmers/misc/MiscCloneProgrammer.ts +64 -26
- package/src/programmers/misc/MiscPruneProgrammer.ts +34 -13
- package/src/programmers/notations/NotationGeneralProgrammer.ts +64 -26
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +16 -9
- package/src/tags/Example.ts +17 -0
- package/src/tags/Examples.ts +16 -0
- package/src/tags/index.ts +20 -18
|
@@ -47,9 +47,11 @@ export namespace JsonStringifyProgrammer {
|
|
|
47
47
|
const config: FeatureProgrammer.IConfig = configure(props);
|
|
48
48
|
if (props.validated === false)
|
|
49
49
|
config.addition = (collection) =>
|
|
50
|
-
IsProgrammer.write_function_statements(
|
|
50
|
+
IsProgrammer.write_function_statements({
|
|
51
|
+
context: props.context,
|
|
52
|
+
importer: props.importer,
|
|
51
53
|
collection,
|
|
52
|
-
);
|
|
54
|
+
});
|
|
53
55
|
const composed: FeatureProgrammer.IComposed = FeatureProgrammer.compose({
|
|
54
56
|
...props,
|
|
55
57
|
config,
|
|
@@ -231,7 +233,11 @@ export namespace JsonStringifyProgrammer {
|
|
|
231
233
|
props.metadata.escaped.original.size() === 1 &&
|
|
232
234
|
props.metadata.escaped.original.natives[0] === "Date"
|
|
233
235
|
? () => check_native("Date")(props.input)
|
|
234
|
-
: () =>
|
|
236
|
+
: () =>
|
|
237
|
+
IsProgrammer.decode_to_json({
|
|
238
|
+
checkNull: false,
|
|
239
|
+
input: props.input,
|
|
240
|
+
}),
|
|
235
241
|
value: () =>
|
|
236
242
|
decode_to_json({
|
|
237
243
|
...props,
|
|
@@ -255,11 +261,10 @@ export namespace JsonStringifyProgrammer {
|
|
|
255
261
|
unions.push({
|
|
256
262
|
type: "template literal",
|
|
257
263
|
is: () =>
|
|
258
|
-
IsProgrammer.decode(
|
|
259
|
-
props
|
|
260
|
-
partial,
|
|
261
|
-
|
|
262
|
-
),
|
|
264
|
+
IsProgrammer.decode({
|
|
265
|
+
...props,
|
|
266
|
+
metadata: partial,
|
|
267
|
+
}),
|
|
263
268
|
value: () =>
|
|
264
269
|
decode_atomic({
|
|
265
270
|
...props,
|
|
@@ -281,9 +286,9 @@ export namespace JsonStringifyProgrammer {
|
|
|
281
286
|
unions.push({
|
|
282
287
|
type: "atomic",
|
|
283
288
|
is: () =>
|
|
284
|
-
IsProgrammer.decode(
|
|
285
|
-
props
|
|
286
|
-
(() => {
|
|
289
|
+
IsProgrammer.decode({
|
|
290
|
+
...props,
|
|
291
|
+
metadata: (() => {
|
|
287
292
|
const partial = Metadata.initialize();
|
|
288
293
|
partial.atomics.push(
|
|
289
294
|
MetadataAtomic.create({
|
|
@@ -293,8 +298,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
293
298
|
);
|
|
294
299
|
return partial;
|
|
295
300
|
})(),
|
|
296
|
-
|
|
297
|
-
),
|
|
301
|
+
}),
|
|
298
302
|
value: () =>
|
|
299
303
|
decode_atomic({
|
|
300
304
|
...props,
|
|
@@ -305,9 +309,9 @@ export namespace JsonStringifyProgrammer {
|
|
|
305
309
|
unions.push({
|
|
306
310
|
type: "const string",
|
|
307
311
|
is: () =>
|
|
308
|
-
IsProgrammer.decode(
|
|
309
|
-
props
|
|
310
|
-
(() => {
|
|
312
|
+
IsProgrammer.decode({
|
|
313
|
+
...props,
|
|
314
|
+
metadata: (() => {
|
|
311
315
|
const partial = Metadata.initialize();
|
|
312
316
|
partial.atomics.push(
|
|
313
317
|
MetadataAtomic.create({
|
|
@@ -317,8 +321,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
317
321
|
);
|
|
318
322
|
return partial;
|
|
319
323
|
})(),
|
|
320
|
-
|
|
321
|
-
),
|
|
324
|
+
}),
|
|
322
325
|
value: () =>
|
|
323
326
|
decode_constant_string({
|
|
324
327
|
...props,
|
|
@@ -337,15 +340,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
337
340
|
unions.push({
|
|
338
341
|
type: "atomic",
|
|
339
342
|
is: () =>
|
|
340
|
-
IsProgrammer.decode(
|
|
341
|
-
props
|
|
342
|
-
(() => {
|
|
343
|
+
IsProgrammer.decode({
|
|
344
|
+
...props,
|
|
345
|
+
metadata: (() => {
|
|
343
346
|
const partial = Metadata.initialize();
|
|
344
347
|
partial.atomics.push(a);
|
|
345
348
|
return partial;
|
|
346
349
|
})(),
|
|
347
|
-
|
|
348
|
-
),
|
|
350
|
+
}),
|
|
349
351
|
value: () =>
|
|
350
352
|
decode_atomic({
|
|
351
353
|
...props,
|
|
@@ -358,15 +360,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
358
360
|
unions.push({
|
|
359
361
|
type: "tuple",
|
|
360
362
|
is: () =>
|
|
361
|
-
IsProgrammer.decode(
|
|
362
|
-
props
|
|
363
|
-
(() => {
|
|
363
|
+
IsProgrammer.decode({
|
|
364
|
+
...props,
|
|
365
|
+
metadata: (() => {
|
|
364
366
|
const partial = Metadata.initialize();
|
|
365
367
|
partial.tuples.push(tuple);
|
|
366
368
|
return partial;
|
|
367
369
|
})(),
|
|
368
|
-
|
|
369
|
-
),
|
|
370
|
+
}),
|
|
370
371
|
value: () =>
|
|
371
372
|
decode_tuple({
|
|
372
373
|
...props,
|
|
@@ -755,7 +756,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
755
756
|
elements: props.arrays,
|
|
756
757
|
factory: (next) =>
|
|
757
758
|
UnionExplorer.array({
|
|
758
|
-
checker:
|
|
759
|
+
checker: (input, metadata, explore) =>
|
|
760
|
+
IsProgrammer.decode({
|
|
761
|
+
context: props.context,
|
|
762
|
+
importer: props.importer,
|
|
763
|
+
metadata,
|
|
764
|
+
input,
|
|
765
|
+
explore,
|
|
766
|
+
}),
|
|
759
767
|
decoder: (input, array, explore) =>
|
|
760
768
|
decode_array({
|
|
761
769
|
config: props.config,
|
|
@@ -812,7 +820,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
812
820
|
[],
|
|
813
821
|
);
|
|
814
822
|
|
|
815
|
-
const
|
|
823
|
+
const arrayExplore: FeatureProgrammer.IExplore = {
|
|
816
824
|
...props.explore,
|
|
817
825
|
source: "function",
|
|
818
826
|
from: "array",
|
|
@@ -828,7 +836,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
828
836
|
TypeFactory.keyword("any"),
|
|
829
837
|
)(ts.factory.createIdentifier("input")),
|
|
830
838
|
explore: {
|
|
831
|
-
...
|
|
839
|
+
...arrayExplore,
|
|
832
840
|
postfix: "",
|
|
833
841
|
},
|
|
834
842
|
input: ts.factory.createIdentifier("input"),
|
|
@@ -836,7 +844,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
836
844
|
),
|
|
837
845
|
),
|
|
838
846
|
undefined,
|
|
839
|
-
FeatureProgrammer.argumentsArray(props.config)(
|
|
847
|
+
FeatureProgrammer.argumentsArray(props.config)(arrayExplore)(props.input),
|
|
840
848
|
);
|
|
841
849
|
};
|
|
842
850
|
|
|
@@ -949,7 +957,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
949
957
|
explore,
|
|
950
958
|
}),
|
|
951
959
|
objector: {
|
|
952
|
-
checker: () =>
|
|
960
|
+
checker: () => (input, metadata, explore) =>
|
|
961
|
+
IsProgrammer.decode({
|
|
962
|
+
context: props.context,
|
|
963
|
+
importer: props.importer,
|
|
964
|
+
metadata,
|
|
965
|
+
input,
|
|
966
|
+
explore,
|
|
967
|
+
}),
|
|
953
968
|
decoder: () => (input, object, explore) =>
|
|
954
969
|
decode_object({
|
|
955
970
|
importer: props.importer,
|
|
@@ -962,8 +977,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
962
977
|
...next,
|
|
963
978
|
importer: props.importer,
|
|
964
979
|
}),
|
|
965
|
-
unionizer: decode_union_object(
|
|
966
|
-
IsProgrammer.decode_object(
|
|
980
|
+
unionizer: decode_union_object((input, object, explore) =>
|
|
981
|
+
IsProgrammer.decode_object({
|
|
982
|
+
context: props.context,
|
|
983
|
+
importer: props.importer,
|
|
984
|
+
input,
|
|
985
|
+
object,
|
|
986
|
+
explore,
|
|
987
|
+
}),
|
|
967
988
|
)((input, object, explore) =>
|
|
968
989
|
decode_object({
|
|
969
990
|
importer: props.importer,
|
|
@@ -104,38 +104,57 @@ export namespace LlmApplicationProgrammer {
|
|
|
104
104
|
function: MetadataFunction;
|
|
105
105
|
description: string | null;
|
|
106
106
|
jsDocTags: IJsDocTagInfo[];
|
|
107
|
-
}): ILlmFunction =>
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
107
|
+
}): ILlmFunction => {
|
|
108
|
+
const deprecated: boolean = props.jsDocTags.some(
|
|
109
|
+
(tag) => tag.name === "deprecated",
|
|
110
|
+
);
|
|
111
|
+
const tags: string[] = props.jsDocTags
|
|
112
|
+
.map((tag) =>
|
|
113
|
+
tag.name === "tag"
|
|
114
|
+
? (tag.text?.filter((elem) => elem.kind === "text") ?? [])
|
|
115
|
+
: [],
|
|
116
|
+
)
|
|
117
|
+
.flat()
|
|
118
|
+
.map((elem) => elem.text)
|
|
119
|
+
.map((str) => str.trim().split(" ")[0] ?? "")
|
|
120
|
+
.filter((str) => !!str.length);
|
|
121
|
+
return {
|
|
122
|
+
name: props.name,
|
|
123
|
+
parameters: props.function.parameters.map((p) => {
|
|
124
|
+
const jsDocTagDescription: string | null = writeDescriptionFromJsDocTag(
|
|
125
|
+
{
|
|
126
|
+
jsDocTags: p.jsDocTags,
|
|
127
|
+
tag: "param",
|
|
128
|
+
parameter: p.name,
|
|
129
|
+
},
|
|
130
|
+
);
|
|
131
|
+
return writeSchema({
|
|
132
|
+
metadata: p.type,
|
|
133
|
+
description: jsDocTagDescription ?? p.description,
|
|
134
|
+
jsDocTags: jsDocTagDescription ? [] : p.jsDocTags,
|
|
135
|
+
});
|
|
136
|
+
}),
|
|
137
|
+
output:
|
|
138
|
+
props.function.output.size() || props.function.output.nullable
|
|
139
|
+
? writeSchema({
|
|
140
|
+
metadata: props.function.output,
|
|
141
|
+
description:
|
|
142
|
+
writeDescriptionFromJsDocTag({
|
|
143
|
+
jsDocTags: props.jsDocTags,
|
|
144
|
+
tag: "return",
|
|
145
|
+
}) ??
|
|
146
|
+
writeDescriptionFromJsDocTag({
|
|
147
|
+
jsDocTags: props.jsDocTags,
|
|
148
|
+
tag: "returns",
|
|
149
|
+
}),
|
|
150
|
+
jsDocTags: [],
|
|
151
|
+
})
|
|
152
|
+
: undefined,
|
|
153
|
+
description: props.description ?? undefined,
|
|
154
|
+
deprecated: deprecated || undefined,
|
|
155
|
+
tags: tags.length ? tags : undefined,
|
|
156
|
+
};
|
|
157
|
+
};
|
|
139
158
|
|
|
140
159
|
const writeSchema = (props: {
|
|
141
160
|
metadata: Metadata;
|
|
@@ -37,9 +37,11 @@ export namespace MiscCloneProgrammer {
|
|
|
37
37
|
const config: FeatureProgrammer.IConfig = configure(props);
|
|
38
38
|
if (props.validated === false)
|
|
39
39
|
config.addition = (collection) =>
|
|
40
|
-
IsProgrammer.write_function_statements(
|
|
40
|
+
IsProgrammer.write_function_statements({
|
|
41
|
+
context: props.context,
|
|
42
|
+
importer: props.importer,
|
|
41
43
|
collection,
|
|
42
|
-
);
|
|
44
|
+
});
|
|
43
45
|
const composed: FeatureProgrammer.IComposed = FeatureProgrammer.compose({
|
|
44
46
|
...props,
|
|
45
47
|
config,
|
|
@@ -201,15 +203,14 @@ export namespace MiscCloneProgrammer {
|
|
|
201
203
|
unions.push({
|
|
202
204
|
type: "tuple",
|
|
203
205
|
is: () =>
|
|
204
|
-
IsProgrammer.decode(
|
|
205
|
-
props
|
|
206
|
-
(() => {
|
|
206
|
+
IsProgrammer.decode({
|
|
207
|
+
...props,
|
|
208
|
+
metadata: (() => {
|
|
207
209
|
const partial = Metadata.initialize();
|
|
208
210
|
partial.tuples.push(tuple);
|
|
209
211
|
return partial;
|
|
210
212
|
})(),
|
|
211
|
-
|
|
212
|
-
),
|
|
213
|
+
}),
|
|
213
214
|
value: () =>
|
|
214
215
|
decode_tuple({
|
|
215
216
|
...props,
|
|
@@ -557,7 +558,14 @@ export namespace MiscCloneProgrammer {
|
|
|
557
558
|
}): ts.Expression =>
|
|
558
559
|
ts.factory.createCallExpression(
|
|
559
560
|
UnionExplorer.set({
|
|
560
|
-
checker:
|
|
561
|
+
checker: (input, metadata, explore) =>
|
|
562
|
+
IsProgrammer.decode({
|
|
563
|
+
context: props.context,
|
|
564
|
+
importer: props.importer,
|
|
565
|
+
input,
|
|
566
|
+
metadata,
|
|
567
|
+
explore,
|
|
568
|
+
}),
|
|
561
569
|
decoder: (input, array, explore) =>
|
|
562
570
|
ts.factory.createNewExpression(
|
|
563
571
|
ts.factory.createIdentifier("Set"),
|
|
@@ -599,19 +607,29 @@ export namespace MiscCloneProgrammer {
|
|
|
599
607
|
}): ts.Expression =>
|
|
600
608
|
ts.factory.createCallExpression(
|
|
601
609
|
UnionExplorer.map({
|
|
602
|
-
checker: (top, entry, explore) =>
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
610
|
+
checker: (top, entry, explore) =>
|
|
611
|
+
ts.factory.createLogicalAnd(
|
|
612
|
+
IsProgrammer.decode({
|
|
613
|
+
context: props.context,
|
|
614
|
+
importer: props.importer,
|
|
615
|
+
input: ts.factory.createElementAccessExpression(top, 0),
|
|
616
|
+
metadata: entry[0],
|
|
617
|
+
explore: {
|
|
618
|
+
...explore,
|
|
619
|
+
postfix: `${explore.postfix}[0]`,
|
|
620
|
+
},
|
|
608
621
|
}),
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
622
|
+
IsProgrammer.decode({
|
|
623
|
+
context: props.context,
|
|
624
|
+
importer: props.importer,
|
|
625
|
+
input: ts.factory.createElementAccessExpression(top, 1),
|
|
626
|
+
metadata: entry[1],
|
|
627
|
+
explore: {
|
|
628
|
+
...explore,
|
|
629
|
+
postfix: `${explore.postfix}[1]`,
|
|
630
|
+
},
|
|
612
631
|
}),
|
|
613
|
-
)
|
|
614
|
-
},
|
|
632
|
+
),
|
|
615
633
|
decoder: (input, array, explore) =>
|
|
616
634
|
ts.factory.createNewExpression(
|
|
617
635
|
ts.factory.createIdentifier("Map"),
|
|
@@ -678,7 +696,14 @@ export namespace MiscCloneProgrammer {
|
|
|
678
696
|
elements: props.arrays,
|
|
679
697
|
factory: (next) =>
|
|
680
698
|
UnionExplorer.array({
|
|
681
|
-
checker:
|
|
699
|
+
checker: (input, metadata, explore) =>
|
|
700
|
+
IsProgrammer.decode({
|
|
701
|
+
context: props.context,
|
|
702
|
+
importer: props.importer,
|
|
703
|
+
input,
|
|
704
|
+
metadata,
|
|
705
|
+
explore,
|
|
706
|
+
}),
|
|
682
707
|
decoder: (input, array, explore) =>
|
|
683
708
|
decode_array({
|
|
684
709
|
config: props.config,
|
|
@@ -735,7 +760,7 @@ export namespace MiscCloneProgrammer {
|
|
|
735
760
|
[],
|
|
736
761
|
);
|
|
737
762
|
|
|
738
|
-
const
|
|
763
|
+
const arrayExplore: FeatureProgrammer.IExplore = {
|
|
739
764
|
...props.explore,
|
|
740
765
|
source: "function",
|
|
741
766
|
from: "array",
|
|
@@ -751,7 +776,7 @@ export namespace MiscCloneProgrammer {
|
|
|
751
776
|
TypeFactory.keyword("any"),
|
|
752
777
|
)(ts.factory.createIdentifier("input")),
|
|
753
778
|
explore: {
|
|
754
|
-
...
|
|
779
|
+
...arrayExplore,
|
|
755
780
|
postfix: "",
|
|
756
781
|
},
|
|
757
782
|
input: ts.factory.createIdentifier("input"),
|
|
@@ -759,7 +784,7 @@ export namespace MiscCloneProgrammer {
|
|
|
759
784
|
),
|
|
760
785
|
),
|
|
761
786
|
undefined,
|
|
762
|
-
FeatureProgrammer.argumentsArray(props.config)(
|
|
787
|
+
FeatureProgrammer.argumentsArray(props.config)(arrayExplore)(props.input),
|
|
763
788
|
);
|
|
764
789
|
};
|
|
765
790
|
|
|
@@ -807,7 +832,14 @@ export namespace MiscCloneProgrammer {
|
|
|
807
832
|
explore,
|
|
808
833
|
}),
|
|
809
834
|
objector: {
|
|
810
|
-
checker: () =>
|
|
835
|
+
checker: () => (input, metadata, explore) =>
|
|
836
|
+
IsProgrammer.decode({
|
|
837
|
+
context: props.context,
|
|
838
|
+
importer: props.importer,
|
|
839
|
+
input,
|
|
840
|
+
metadata,
|
|
841
|
+
explore,
|
|
842
|
+
}),
|
|
811
843
|
decoder: () => (input, object, explore) =>
|
|
812
844
|
decode_object({
|
|
813
845
|
importer: props.importer,
|
|
@@ -816,8 +848,14 @@ export namespace MiscCloneProgrammer {
|
|
|
816
848
|
explore,
|
|
817
849
|
}),
|
|
818
850
|
joiner: CloneJoiner.object,
|
|
819
|
-
unionizer: decode_union_object(
|
|
820
|
-
IsProgrammer.decode_object(
|
|
851
|
+
unionizer: decode_union_object((input, object, explore) =>
|
|
852
|
+
IsProgrammer.decode_object({
|
|
853
|
+
context: props.context,
|
|
854
|
+
importer: props.importer,
|
|
855
|
+
input,
|
|
856
|
+
object,
|
|
857
|
+
explore,
|
|
858
|
+
}),
|
|
821
859
|
)((input, object, explore) =>
|
|
822
860
|
decode_object({
|
|
823
861
|
importer: props.importer,
|
|
@@ -37,9 +37,11 @@ export namespace MiscPruneProgrammer {
|
|
|
37
37
|
const config = configure(props);
|
|
38
38
|
if (props.validated === false)
|
|
39
39
|
config.addition = (collection) =>
|
|
40
|
-
IsProgrammer.write_function_statements(
|
|
40
|
+
IsProgrammer.write_function_statements({
|
|
41
|
+
context: props.context,
|
|
42
|
+
importer: props.importer,
|
|
41
43
|
collection,
|
|
42
|
-
);
|
|
44
|
+
});
|
|
43
45
|
const composed: FeatureProgrammer.IComposed = FeatureProgrammer.compose({
|
|
44
46
|
...props,
|
|
45
47
|
config,
|
|
@@ -179,15 +181,14 @@ export namespace MiscPruneProgrammer {
|
|
|
179
181
|
unions.push({
|
|
180
182
|
type: "tuple",
|
|
181
183
|
is: () =>
|
|
182
|
-
IsProgrammer.decode(
|
|
183
|
-
props
|
|
184
|
-
(() => {
|
|
184
|
+
IsProgrammer.decode({
|
|
185
|
+
...props,
|
|
186
|
+
metadata: (() => {
|
|
185
187
|
const partial = Metadata.initialize();
|
|
186
188
|
partial.tuples.push(tuple);
|
|
187
189
|
return partial;
|
|
188
190
|
})(),
|
|
189
|
-
|
|
190
|
-
),
|
|
191
|
+
}),
|
|
191
192
|
value: () =>
|
|
192
193
|
decode_tuple({
|
|
193
194
|
...props,
|
|
@@ -433,7 +434,14 @@ export namespace MiscPruneProgrammer {
|
|
|
433
434
|
elements: props.arrays,
|
|
434
435
|
factory: (next) =>
|
|
435
436
|
UnionExplorer.array({
|
|
436
|
-
checker:
|
|
437
|
+
checker: (input, metadata, explore) =>
|
|
438
|
+
IsProgrammer.decode({
|
|
439
|
+
context: props.context,
|
|
440
|
+
importer: props.importer,
|
|
441
|
+
metadata,
|
|
442
|
+
input,
|
|
443
|
+
explore,
|
|
444
|
+
}),
|
|
437
445
|
decoder: (input, array, explore) =>
|
|
438
446
|
decode_array({
|
|
439
447
|
config: props.config,
|
|
@@ -490,7 +498,7 @@ export namespace MiscPruneProgrammer {
|
|
|
490
498
|
[],
|
|
491
499
|
);
|
|
492
500
|
|
|
493
|
-
const
|
|
501
|
+
const arrayExplore: FeatureProgrammer.IExplore = {
|
|
494
502
|
...props.explore,
|
|
495
503
|
source: "function",
|
|
496
504
|
from: "array",
|
|
@@ -506,7 +514,7 @@ export namespace MiscPruneProgrammer {
|
|
|
506
514
|
TypeFactory.keyword("any"),
|
|
507
515
|
)(ts.factory.createIdentifier("input")),
|
|
508
516
|
explore: {
|
|
509
|
-
...
|
|
517
|
+
...arrayExplore,
|
|
510
518
|
postfix: "",
|
|
511
519
|
},
|
|
512
520
|
input: ts.factory.createIdentifier("input"),
|
|
@@ -562,7 +570,14 @@ export namespace MiscPruneProgrammer {
|
|
|
562
570
|
explore,
|
|
563
571
|
}),
|
|
564
572
|
objector: {
|
|
565
|
-
checker: () =>
|
|
573
|
+
checker: () => (input, metadata, explore) =>
|
|
574
|
+
IsProgrammer.decode({
|
|
575
|
+
context: props.context,
|
|
576
|
+
importer: props.importer,
|
|
577
|
+
input,
|
|
578
|
+
metadata,
|
|
579
|
+
explore,
|
|
580
|
+
}),
|
|
566
581
|
decoder: () => (input, object, explore) =>
|
|
567
582
|
decode_object({
|
|
568
583
|
importer: props.importer,
|
|
@@ -571,8 +586,14 @@ export namespace MiscPruneProgrammer {
|
|
|
571
586
|
explore,
|
|
572
587
|
}),
|
|
573
588
|
joiner: PruneJoiner.object,
|
|
574
|
-
unionizer: decode_union_object(
|
|
575
|
-
IsProgrammer.decode_object(
|
|
589
|
+
unionizer: decode_union_object((input, object, explore) =>
|
|
590
|
+
IsProgrammer.decode_object({
|
|
591
|
+
context: props.context,
|
|
592
|
+
importer: props.importer,
|
|
593
|
+
input,
|
|
594
|
+
object,
|
|
595
|
+
explore,
|
|
596
|
+
}),
|
|
576
597
|
)((input, object, explore) =>
|
|
577
598
|
decode_object({
|
|
578
599
|
importer: props.importer,
|