typia 6.7.2-dev.20240805-5 → 6.7.3-dev.20240808
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/TypeFactory.d.ts +2 -0
- package/lib/factories/TypeFactory.js +83 -4
- package/lib/factories/TypeFactory.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_array_type.js +5 -1
- package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -1
- package/lib/factories/internal/metadata/emplace_metadata_object.js +4 -3
- package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.js +2 -1
- package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_array.js +2 -1
- package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_coalesce.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_coalesce.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_constant.js +3 -2
- package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +3 -2
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_map.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_native.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_object.js +3 -2
- package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.js +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_union.js +2 -1
- package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
- package/lib/transformers/features/CreateRandomTransformer.js +2 -1
- package/lib/transformers/features/CreateRandomTransformer.js.map +1 -1
- package/lib/transformers/features/RandomTransformer.js +2 -1
- package/lib/transformers/features/RandomTransformer.js.map +1 -1
- package/lib/transformers/features/json/JsonApplicationTransformer.js +5 -4
- package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/misc/MiscLiteralsTransformer.js +2 -1
- package/lib/transformers/features/misc/MiscLiteralsTransformer.js.map +1 -1
- package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js +2 -1
- package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js.map +1 -1
- package/lib/transformers/features/reflect/ReflectMetadataTransformer.js +2 -1
- package/lib/transformers/features/reflect/ReflectMetadataTransformer.js.map +1 -1
- package/lib/transformers/internal/GenericTransformer.js +3 -2
- package/lib/transformers/internal/GenericTransformer.js.map +1 -1
- package/lib/utils/TypePredicator.d.ts +10 -0
- package/lib/utils/TypePredicator.js +36 -0
- package/lib/utils/TypePredicator.js.map +1 -0
- package/package.json +1 -1
- package/src/factories/StatementFactory.ts +74 -74
- package/src/factories/TypeFactory.ts +76 -4
- package/src/factories/internal/metadata/emplace_metadata_array_type.ts +1 -1
- package/src/factories/internal/metadata/emplace_metadata_object.ts +6 -3
- package/src/factories/internal/metadata/iterate_metadata.ts +3 -1
- package/src/factories/internal/metadata/iterate_metadata_array.ts +2 -1
- package/src/factories/internal/metadata/iterate_metadata_atomic.ts +1 -1
- package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +1 -1
- package/src/factories/internal/metadata/iterate_metadata_constant.ts +3 -2
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +3 -2
- package/src/factories/internal/metadata/iterate_metadata_map.ts +1 -1
- package/src/factories/internal/metadata/iterate_metadata_native.ts +1 -4
- package/src/factories/internal/metadata/iterate_metadata_object.ts +3 -2
- package/src/factories/internal/metadata/iterate_metadata_set.ts +1 -1
- package/src/factories/internal/metadata/iterate_metadata_template.ts +1 -1
- package/src/factories/internal/metadata/iterate_metadata_union.ts +3 -1
- package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
- package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
- package/src/tags/Type.ts +32 -32
- package/src/transformers/features/CreateRandomTransformer.ts +3 -1
- package/src/transformers/features/RandomTransformer.ts +3 -1
- package/src/transformers/features/json/JsonApplicationTransformer.ts +6 -4
- package/src/transformers/features/misc/MiscLiteralsTransformer.ts +3 -1
- package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +3 -1
- package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +3 -1
- package/src/transformers/internal/GenericTransformer.ts +4 -2
- package/src/utils/TypePredicator.ts +32 -0
|
@@ -12,13 +12,14 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.iterate_metadata_union = void 0;
|
|
15
|
+
var TypePredicator_1 = require("../../../utils/TypePredicator");
|
|
15
16
|
var iterate_metadata_1 = require("./iterate_metadata");
|
|
16
17
|
var iterate_metadata_union = function (checker) {
|
|
17
18
|
return function (options) {
|
|
18
19
|
return function (collection) {
|
|
19
20
|
return function (errors) {
|
|
20
21
|
return function (meta, type, explore) {
|
|
21
|
-
if (
|
|
22
|
+
if (TypePredicator_1.TypePredicator.isUnion(type) === false)
|
|
22
23
|
return false;
|
|
23
24
|
type.types.forEach(function (t) {
|
|
24
25
|
return (0, iterate_metadata_1.iterate_metadata)(checker)(options)(collection)(errors)(meta, t, __assign(__assign({}, explore), { aliased: false }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterate_metadata_union.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_union.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"iterate_metadata_union.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata_union.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,gEAA+D;AAI/D,uDAAsD;AAE/C,IAAM,sBAAsB,GACjC,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UAAC,MAAgC;gBACjC,OAAA,UACE,IAAc,EACd,IAAa,EACb,OAAiC;oBAEjC,IAAI,+BAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK;wBAAE,OAAO,KAAK,CAAC;oBACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC;wBACnB,OAAA,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,wBACzD,OAAO,KACV,OAAO,EAAE,KAAK,IACd;oBAHF,CAGE,CACH,CAAC;oBACF,OAAO,IAAI,CAAC;gBACd,CAAC;YAbD,CAaC;QAdD,CAcC;IAfD,CAeC;AAhBD,CAgBC,CAAC;AAlBS,QAAA,sBAAsB,0BAkB/B"}
|
|
@@ -13,6 +13,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.CreateRandomTransformer = void 0;
|
|
15
15
|
var RandomProgrammer_1 = require("../../programmers/RandomProgrammer");
|
|
16
|
+
var TypePredicator_1 = require("../../utils/TypePredicator");
|
|
16
17
|
var TransformerError_1 = require("../TransformerError");
|
|
17
18
|
var CreateRandomTransformer;
|
|
18
19
|
(function (CreateRandomTransformer) {
|
|
@@ -29,7 +30,7 @@ var CreateRandomTransformer;
|
|
|
29
30
|
// GET TYPE INFO
|
|
30
31
|
var node = expression.typeArguments[0];
|
|
31
32
|
var type = project.checker.getTypeFromTypeNode(node);
|
|
32
|
-
if (
|
|
33
|
+
if (TypePredicator_1.TypePredicator.isTypeParameter(type))
|
|
33
34
|
throw new TransformerError_1.TransformerError({
|
|
34
35
|
code: "typia.createRandom",
|
|
35
36
|
message: "non-specified generic argument.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateRandomTransformer.js","sourceRoot":"","sources":["../../../src/transformers/features/CreateRandomTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,uEAAsE;
|
|
1
|
+
{"version":3,"file":"CreateRandomTransformer.js","sourceRoot":"","sources":["../../../src/transformers/features/CreateRandomTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,uEAAsE;AAEtE,6DAA4D;AAG5D,wDAAuD;AAEvD,IAAiB,uBAAuB,CAgCvC;AAhCD,WAAiB,uBAAuB;IACzB,iCAAS,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,UAA6B;;gBAC5B,mCAAmC;gBACnC,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;oBAChC,MAAM,IAAI,mCAAgB,CAAC;wBACzB,IAAI,EAAE,oBAAoB;wBAC1B,OAAO,EAAE,oCAAoC;qBAC9C,CAAC,CAAC;gBAEL,gBAAgB;gBAChB,IAAM,IAAI,GAAgB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAEhE,IAAI,+BAAc,CAAC,eAAe,CAAC,IAAI,CAAC;oBACtC,MAAM,IAAI,mCAAgB,CAAC;wBACzB,IAAI,EAAE,oBAAoB;wBAC1B,OAAO,EAAE,iCAAiC;qBAC3C,CAAC,CAAC;gBAEL,eAAe;gBACf,OAAO,mCAAgB,CAAC,KAAK,uBACxB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEhB,CAAC,MAAM,CAAC,CAAC,MAAA,UAAU,CAAC,SAAS,0CAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;QA3BD,CA2BC;IA5BD,CA4BC,CAAC;AACN,CAAC,EAhCgB,uBAAuB,uCAAvB,uBAAuB,QAgCvC"}
|
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.RandomTransformer = void 0;
|
|
18
18
|
var typescript_1 = __importDefault(require("typescript"));
|
|
19
19
|
var RandomProgrammer_1 = require("../../programmers/RandomProgrammer");
|
|
20
|
+
var TypePredicator_1 = require("../../utils/TypePredicator");
|
|
20
21
|
var TransformerError_1 = require("../TransformerError");
|
|
21
22
|
var RandomTransformer;
|
|
22
23
|
(function (RandomTransformer) {
|
|
@@ -33,7 +34,7 @@ var RandomTransformer;
|
|
|
33
34
|
// GET TYPE INFO
|
|
34
35
|
var node = expression.typeArguments[0];
|
|
35
36
|
var type = project.checker.getTypeFromTypeNode(node);
|
|
36
|
-
if (
|
|
37
|
+
if (TypePredicator_1.TypePredicator.isTypeParameter(type))
|
|
37
38
|
throw new TransformerError_1.TransformerError({
|
|
38
39
|
code: "typia.".concat(modulo.getText()),
|
|
39
40
|
message: "non-specified generic argument.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RandomTransformer.js","sourceRoot":"","sources":["../../../src/transformers/features/RandomTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;
|
|
1
|
+
{"version":3,"file":"RandomTransformer.js","sourceRoot":"","sources":["../../../src/transformers/features/RandomTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AAEtE,6DAA4D;AAG5D,wDAAuD;AAEvD,IAAiB,iBAAiB,CAoCjC;AApCD,WAAiB,iBAAiB;IACnB,2BAAS,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,UAA6B;;gBAC5B,mCAAmC;gBACnC,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;oBAChC,MAAM,IAAI,mCAAgB,CAAC;wBACzB,IAAI,EAAE,gBAAS,MAAM,CAAC,OAAO,EAAE,CAAE;wBACjC,OAAO,EAAE,oCAAoC;qBAC9C,CAAC,CAAC;gBAEL,gBAAgB;gBAChB,IAAM,IAAI,GAAgB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAEhE,IAAI,+BAAc,CAAC,eAAe,CAAC,IAAI,CAAC;oBACtC,MAAM,IAAI,mCAAgB,CAAC;wBACzB,IAAI,EAAE,gBAAS,MAAM,CAAC,OAAO,EAAE,CAAE;wBACjC,OAAO,EAAE,iCAAiC;qBAC3C,CAAC,CAAC;gBAEL,eAAe;gBACf,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CACpC,mCAAgB,CAAC,KAAK,uBACjB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEhB,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAC7C,SAAS,EACT,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CACrE,CAAC;YACJ,CAAC;QA/BD,CA+BC;IAhCD,CAgCC,CAAC;AACN,CAAC,EApCgB,iBAAiB,iCAAjB,iBAAiB,QAoCjC"}
|
|
@@ -45,6 +45,7 @@ var LiteralFactory_1 = require("../../../factories/LiteralFactory");
|
|
|
45
45
|
var MetadataCollection_1 = require("../../../factories/MetadataCollection");
|
|
46
46
|
var MetadataFactory_1 = require("../../../factories/MetadataFactory");
|
|
47
47
|
var JsonApplicationProgrammer_1 = require("../../../programmers/json/JsonApplicationProgrammer");
|
|
48
|
+
var TypePredicator_1 = require("../../../utils/TypePredicator");
|
|
48
49
|
var TransformerError_1 = require("../../TransformerError");
|
|
49
50
|
var JsonApplicationTransformer;
|
|
50
51
|
(function (JsonApplicationTransformer) {
|
|
@@ -70,7 +71,7 @@ var JsonApplicationTransformer;
|
|
|
70
71
|
var types = top.elements.map(function (child) {
|
|
71
72
|
return project.checker.getTypeFromTypeNode(child);
|
|
72
73
|
});
|
|
73
|
-
if (types.some(
|
|
74
|
+
if (types.some(TypePredicator_1.TypePredicator.isTypeParameter))
|
|
74
75
|
throw new TransformerError_1.TransformerError({
|
|
75
76
|
code: "typia.json.application",
|
|
76
77
|
message: "non-specified generic argument(s).",
|
|
@@ -130,14 +131,14 @@ var JsonApplicationTransformer;
|
|
|
130
131
|
return props.default();
|
|
131
132
|
// CHECK LITERAL TYPE
|
|
132
133
|
var type = props.checker.getTypeFromTypeNode(node);
|
|
133
|
-
if (!
|
|
134
|
-
(type.
|
|
134
|
+
if (!TypePredicator_1.TypePredicator.isLiteral(type) &&
|
|
135
|
+
(type.flags & typescript_1.default.TypeFlags.BooleanLiteral) === 0)
|
|
135
136
|
throw new TransformerError_1.TransformerError({
|
|
136
137
|
code: "typia.json.application",
|
|
137
138
|
message: "generic argument \"".concat(props.name, "\" must be constant."),
|
|
138
139
|
});
|
|
139
140
|
// GET VALUE AND VALIDATE IT
|
|
140
|
-
var value =
|
|
141
|
+
var value = TypePredicator_1.TypePredicator.isLiteral(type)
|
|
141
142
|
? type.value
|
|
142
143
|
: props.checker.typeToString(type);
|
|
143
144
|
if (typeof value !== "string" || props.is(value) === false)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/json/JsonApplicationTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AAKrE,iGAAgG;
|
|
1
|
+
{"version":3,"file":"JsonApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/json/JsonApplicationTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MiscLiteralsTransformer = void 0;
|
|
4
4
|
var MiscLiteralsProgrammer_1 = require("../../../programmers/misc/MiscLiteralsProgrammer");
|
|
5
|
+
var TypePredicator_1 = require("../../../utils/TypePredicator");
|
|
5
6
|
var TransformerError_1 = require("../../TransformerError");
|
|
6
7
|
var MiscLiteralsTransformer;
|
|
7
8
|
(function (MiscLiteralsTransformer) {
|
|
@@ -17,7 +18,7 @@ var MiscLiteralsTransformer;
|
|
|
17
18
|
// GET TYPE INFO
|
|
18
19
|
var node = expression.typeArguments[0];
|
|
19
20
|
var type = project.checker.getTypeFromTypeNode(node);
|
|
20
|
-
if (
|
|
21
|
+
if (TypePredicator_1.TypePredicator.isTypeParameter(type))
|
|
21
22
|
throw new TransformerError_1.TransformerError({
|
|
22
23
|
code: "typia.misc.literals",
|
|
23
24
|
message: "non-specified generic argument.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiscLiteralsTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscLiteralsTransformer.ts"],"names":[],"mappings":";;;AAEA,2FAA0F;
|
|
1
|
+
{"version":3,"file":"MiscLiteralsTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/misc/MiscLiteralsTransformer.ts"],"names":[],"mappings":";;;AAEA,2FAA0F;AAE1F,gEAA+D;AAG/D,2DAA0D;AAE1D,IAAiB,uBAAuB,CAwBvC;AAxBD,WAAiB,uBAAuB;IACzB,iCAAS,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,UAA6B;;YAC5B,mCAAmC;YACnC,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;gBAChC,MAAM,IAAI,mCAAgB,CAAC;oBACzB,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,oCAAoC;iBAC9C,CAAC,CAAC;YAEL,gBAAgB;YAChB,IAAM,IAAI,GAAgB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACtD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAEhE,IAAI,+BAAc,CAAC,eAAe,CAAC,IAAI,CAAC;gBACtC,MAAM,IAAI,mCAAgB,CAAC;oBACzB,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,iCAAiC;iBAC3C,CAAC,CAAC;YAEL,eAAe;YACf,OAAO,+CAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;IApBD,CAoBC,CAAC;AACN,CAAC,EAxBgB,uBAAuB,uCAAvB,uBAAuB,QAwBvC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProtobufMessageTransformer = void 0;
|
|
4
4
|
var ProtobufMessageProgrammer_1 = require("../../../programmers/protobuf/ProtobufMessageProgrammer");
|
|
5
|
+
var TypePredicator_1 = require("../../../utils/TypePredicator");
|
|
5
6
|
var TransformerError_1 = require("../../TransformerError");
|
|
6
7
|
var ProtobufMessageTransformer;
|
|
7
8
|
(function (ProtobufMessageTransformer) {
|
|
@@ -16,7 +17,7 @@ var ProtobufMessageTransformer;
|
|
|
16
17
|
});
|
|
17
18
|
// GET TYPE INFO
|
|
18
19
|
var type = project.checker.getTypeFromTypeNode(expression.typeArguments[0]);
|
|
19
|
-
if (
|
|
20
|
+
if (TypePredicator_1.TypePredicator.isTypeParameter(type))
|
|
20
21
|
throw new TransformerError_1.TransformerError({
|
|
21
22
|
code: "tyipa.protobuf.message",
|
|
22
23
|
message: "non-specified generic argument.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtobufMessageTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/protobuf/ProtobufMessageTransformer.ts"],"names":[],"mappings":";;;AAEA,qGAAoG;
|
|
1
|
+
{"version":3,"file":"ProtobufMessageTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/protobuf/ProtobufMessageTransformer.ts"],"names":[],"mappings":";;;AAEA,qGAAoG;AAEpG,gEAA+D;AAG/D,2DAA0D;AAE1D,IAAiB,0BAA0B,CAyB1C;AAzBD,WAAiB,0BAA0B;IAC5B,oCAAS,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,OAAkC;YACnC,OAAA,UAAC,UAA6B;gBAC5B,mCAAmC;gBACnC,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;oBAC3D,MAAM,IAAI,mCAAgB,CAAC;wBACzB,IAAI,EAAE,wBAAwB;wBAC9B,OAAO,EAAE,oCAAoC;qBAC9C,CAAC,CAAC;gBAEL,gBAAgB;gBAChB,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACvD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC5B,CAAC;gBACF,IAAI,+BAAc,CAAC,eAAe,CAAC,IAAI,CAAC;oBACtC,MAAM,IAAI,mCAAgB,CAAC;wBACzB,IAAI,EAAE,wBAAwB;wBAC9B,OAAO,EAAE,iCAAiC;qBAC3C,CAAC,CAAC;gBAEL,eAAe;gBACf,OAAO,qDAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;QApBD,CAoBC;IArBD,CAqBC,CAAC;AACN,CAAC,EAzBgB,0BAA0B,0CAA1B,0BAA0B,QAyB1C"}
|
|
@@ -8,6 +8,7 @@ var typescript_1 = __importDefault(require("typescript"));
|
|
|
8
8
|
var LiteralFactory_1 = require("../../../factories/LiteralFactory");
|
|
9
9
|
var MetadataCollection_1 = require("../../../factories/MetadataCollection");
|
|
10
10
|
var MetadataFactory_1 = require("../../../factories/MetadataFactory");
|
|
11
|
+
var TypePredicator_1 = require("../../../utils/TypePredicator");
|
|
11
12
|
var TransformerError_1 = require("../../TransformerError");
|
|
12
13
|
var ReflectMetadataTransformer;
|
|
13
14
|
(function (ReflectMetadataTransformer) {
|
|
@@ -29,7 +30,7 @@ var ReflectMetadataTransformer;
|
|
|
29
30
|
var types = top.elements.map(function (child) {
|
|
30
31
|
return project.checker.getTypeFromTypeNode(child);
|
|
31
32
|
});
|
|
32
|
-
if (types.some(
|
|
33
|
+
if (types.some(TypePredicator_1.TypePredicator.isTypeParameter))
|
|
33
34
|
throw new TransformerError_1.TransformerError({
|
|
34
35
|
code: "typia.reflect.metadata",
|
|
35
36
|
message: "non-specified generic argument(s).",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReflectMetadataTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/reflect/ReflectMetadataTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;
|
|
1
|
+
{"version":3,"file":"ReflectMetadataTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/reflect/ReflectMetadataTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AAKrE,gEAA+D;AAG/D,2DAA0D;AAE1D,IAAiB,0BAA0B,CAiD1C;AAjDD,WAAiB,0BAA0B;IAC5B,oCAAS,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,UAA6B;;YAC5B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,MAAM,CAAA;gBACnC,MAAM,IAAI,mCAAgB,CAAC;oBACzB,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,sBAAsB;iBAChC,CAAC,CAAC;YAEL,2BAA2B;YAC3B,IAAM,GAAG,GAAY,UAAU,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;YAClD,IAAI,CAAC,oBAAE,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,OAAO,UAAU,CAAC;iBAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,oBAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;gBAC1D,OAAO,UAAU,CAAC;YAEpB,YAAY;YACZ,IAAM,KAAK,GAAc,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK;gBAC9C,OAAA,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAoB,CAAC;YAAzD,CAAyD,CAC1D,CAAC;YACF,IAAI,KAAK,CAAC,IAAI,CAAC,+BAAc,CAAC,eAAe,CAAC;gBAC5C,MAAM,IAAI,mCAAgB,CAAC;oBACzB,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,oCAAoC;iBAC9C,CAAC,CAAC;YAEL,WAAW;YACX,IAAM,UAAU,GAAuB,IAAI,uCAAkB,EAAE,CAAC;YAChE,IAAM,SAAS,GAAoB,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;gBAChD,IAAM,MAAM,GAAG,iCAAe,CAAC,OAAO,CACpC,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;oBACA,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;oBAC1B,MAAM,mCAAgB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvE,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,4BAA4B;YAC5B,IAAM,GAAG,GAAyB;gBAChC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,MAAM,EAAE,EAAjB,CAAiB,CAAC;gBACzD,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE;aAChC,CAAC;YACF,OAAO,+BAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;IA7CD,CA6CC,CAAC;AACN,CAAC,EAjDgB,0BAA0B,0CAA1B,0BAA0B,QAiD1C"}
|
|
@@ -21,6 +21,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.GenericTransformer = void 0;
|
|
23
23
|
var typescript_1 = __importDefault(require("typescript"));
|
|
24
|
+
var TypePredicator_1 = require("../../utils/TypePredicator");
|
|
24
25
|
var TransformerError_1 = require("../TransformerError");
|
|
25
26
|
var GenericTransformer;
|
|
26
27
|
(function (GenericTransformer) {
|
|
@@ -47,7 +48,7 @@ var GenericTransformer;
|
|
|
47
48
|
expression.arguments[0],
|
|
48
49
|
false,
|
|
49
50
|
], 3), type = _a[0], node = _a[1], generic = _a[2];
|
|
50
|
-
if (
|
|
51
|
+
if (TypePredicator_1.TypePredicator.isTypeParameter(type))
|
|
51
52
|
throw new TransformerError_1.TransformerError({
|
|
52
53
|
code: "typia.".concat(method),
|
|
53
54
|
message: "non-specified generic argument.",
|
|
@@ -76,7 +77,7 @@ var GenericTransformer;
|
|
|
76
77
|
// GET TYPE INFO
|
|
77
78
|
var node = expression.typeArguments[0];
|
|
78
79
|
var type = project.checker.getTypeFromTypeNode(node);
|
|
79
|
-
if (
|
|
80
|
+
if (TypePredicator_1.TypePredicator.isTypeParameter(type))
|
|
80
81
|
throw new TransformerError_1.TransformerError({
|
|
81
82
|
code: "typia.".concat(method),
|
|
82
83
|
message: "non-specified generic argument.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericTransformer.js","sourceRoot":"","sources":["../../../src/transformers/internal/GenericTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;
|
|
1
|
+
{"version":3,"file":"GenericTransformer.js","sourceRoot":"","sources":["../../../src/transformers/internal/GenericTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
export declare namespace TypePredicator {
|
|
3
|
+
const isLiteral: (type: ts.Type) => type is ts.LiteralType;
|
|
4
|
+
const isTypeParameter: (type: ts.Type) => type is ts.TypeParameter;
|
|
5
|
+
const isIntersection: (type: ts.Type) => type is ts.IntersectionType;
|
|
6
|
+
const isUnion: (type: ts.Type) => type is ts.UnionType;
|
|
7
|
+
const isUnionOrIntersection: (type: ts.Type) => type is ts.UnionOrIntersectionType;
|
|
8
|
+
const isClass: (type: ts.Type) => type is ts.InterfaceType;
|
|
9
|
+
const isInterfaceOrClass: (type: ts.Type) => type is ts.InterfaceType;
|
|
10
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TypePredicator = void 0;
|
|
7
|
+
var typescript_1 = __importDefault(require("typescript"));
|
|
8
|
+
var TypePredicator;
|
|
9
|
+
(function (TypePredicator) {
|
|
10
|
+
TypePredicator.isLiteral = function (type) {
|
|
11
|
+
return !!(type.flags &
|
|
12
|
+
(typescript_1.default.TypeFlags.EnumLiteral |
|
|
13
|
+
typescript_1.default.TypeFlags.StringLiteral |
|
|
14
|
+
typescript_1.default.TypeFlags.NumberLiteral |
|
|
15
|
+
typescript_1.default.TypeFlags.BigIntLiteral));
|
|
16
|
+
};
|
|
17
|
+
TypePredicator.isTypeParameter = function (type) {
|
|
18
|
+
return !!(type.flags & typescript_1.default.TypeFlags.TypeParameter);
|
|
19
|
+
};
|
|
20
|
+
TypePredicator.isIntersection = function (type) {
|
|
21
|
+
return !!(type.flags & typescript_1.default.TypeFlags.Intersection);
|
|
22
|
+
};
|
|
23
|
+
TypePredicator.isUnion = function (type) {
|
|
24
|
+
return !!(type.flags & typescript_1.default.TypeFlags.Union);
|
|
25
|
+
};
|
|
26
|
+
TypePredicator.isUnionOrIntersection = function (type) {
|
|
27
|
+
return !!(type.flags & typescript_1.default.TypeFlags.UnionOrIntersection);
|
|
28
|
+
};
|
|
29
|
+
TypePredicator.isClass = function (type) {
|
|
30
|
+
return !!(typescript_1.default.getObjectFlags(type) & typescript_1.default.ObjectFlags.Class);
|
|
31
|
+
};
|
|
32
|
+
TypePredicator.isInterfaceOrClass = function (type) {
|
|
33
|
+
return !!(typescript_1.default.getObjectFlags(type) & typescript_1.default.ObjectFlags.ClassOrInterface);
|
|
34
|
+
};
|
|
35
|
+
})(TypePredicator || (exports.TypePredicator = TypePredicator = {}));
|
|
36
|
+
//# sourceMappingURL=TypePredicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypePredicator.js","sourceRoot":"","sources":["../../src/utils/TypePredicator.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,IAAiB,cAAc,CA6B9B;AA7BD,WAAiB,cAAc;IAChB,wBAAS,GAAG,UAAC,IAAa;QACrC,OAAA,CAAC,CAAC,CACA,IAAI,CAAC,KAAK;YACV,CAAC,oBAAE,CAAC,SAAS,CAAC,WAAW;gBACvB,oBAAE,CAAC,SAAS,CAAC,aAAa;gBAC1B,oBAAE,CAAC,SAAS,CAAC,aAAa;gBAC1B,oBAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAC9B;IAND,CAMC,CAAC;IAES,8BAAe,GAAG,UAAC,IAAa;QAC3C,OAAA,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,oBAAE,CAAC,SAAS,CAAC,aAAa,CAAC;IAA3C,CAA2C,CAAC;IAEjC,6BAAc,GAAG,UAAC,IAAa;QAC1C,OAAA,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,oBAAE,CAAC,SAAS,CAAC,YAAY,CAAC;IAA1C,CAA0C,CAAC;IAEhC,sBAAO,GAAG,UAAC,IAAa;QACnC,OAAA,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,oBAAE,CAAC,SAAS,CAAC,KAAK,CAAC;IAAnC,CAAmC,CAAC;IAEzB,oCAAqB,GAAG,UACnC,IAAa;QAEb,OAAA,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,oBAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC;IAAjD,CAAiD,CAAC;IAEvC,sBAAO,GAAG,UAAC,IAAa;QACnC,OAAA,CAAC,CAAC,CAAC,oBAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,oBAAE,CAAC,WAAW,CAAC,KAAK,CAAC;IAAlD,CAAkD,CAAC;IAExC,iCAAkB,GAAG,UAAC,IAAa;QAC9C,OAAA,CAAC,CAAC,CAAC,oBAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,oBAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAA7D,CAA6D,CAAC;AAClE,CAAC,EA7BgB,cAAc,8BAAd,cAAc,QA6B9B"}
|
package/package.json
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
|
|
3
|
-
import { TypeFactory } from "./TypeFactory";
|
|
4
|
-
|
|
5
|
-
export namespace StatementFactory {
|
|
6
|
-
export const mut = (name: string, initializer?: ts.Expression) =>
|
|
7
|
-
ts.factory.createVariableStatement(
|
|
8
|
-
undefined,
|
|
9
|
-
ts.factory.createVariableDeclarationList(
|
|
10
|
-
[
|
|
11
|
-
ts.factory.createVariableDeclaration(
|
|
12
|
-
name,
|
|
13
|
-
undefined,
|
|
14
|
-
initializer === undefined ? TypeFactory.keyword("any") : undefined,
|
|
15
|
-
initializer,
|
|
16
|
-
),
|
|
17
|
-
],
|
|
18
|
-
ts.NodeFlags.Let,
|
|
19
|
-
),
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
export const constant = (name: string, initializer?: ts.Expression) =>
|
|
23
|
-
ts.factory.createVariableStatement(
|
|
24
|
-
undefined,
|
|
25
|
-
ts.factory.createVariableDeclarationList(
|
|
26
|
-
[
|
|
27
|
-
ts.factory.createVariableDeclaration(
|
|
28
|
-
name,
|
|
29
|
-
undefined,
|
|
30
|
-
undefined,
|
|
31
|
-
initializer,
|
|
32
|
-
),
|
|
33
|
-
],
|
|
34
|
-
ts.NodeFlags.Const,
|
|
35
|
-
),
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
export const entry = (key: string) => (value: string) =>
|
|
39
|
-
ts.factory.createVariableDeclarationList(
|
|
40
|
-
[
|
|
41
|
-
ts.factory.createVariableDeclaration(
|
|
42
|
-
ts.factory.createArrayBindingPattern([
|
|
43
|
-
ts.factory.createBindingElement(
|
|
44
|
-
undefined,
|
|
45
|
-
undefined,
|
|
46
|
-
ts.factory.createIdentifier(key),
|
|
47
|
-
undefined,
|
|
48
|
-
),
|
|
49
|
-
ts.factory.createBindingElement(
|
|
50
|
-
undefined,
|
|
51
|
-
undefined,
|
|
52
|
-
ts.factory.createIdentifier(value),
|
|
53
|
-
undefined,
|
|
54
|
-
),
|
|
55
|
-
]),
|
|
56
|
-
undefined,
|
|
57
|
-
undefined,
|
|
58
|
-
undefined,
|
|
59
|
-
),
|
|
60
|
-
],
|
|
61
|
-
ts.NodeFlags.Const,
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
export const transpile = (script: string) =>
|
|
65
|
-
ts.factory.createExpressionStatement(
|
|
66
|
-
ts.factory.createIdentifier(ts.transpile(script)),
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
export const block = (expression: ts.Expression) =>
|
|
70
|
-
ts.factory.createBlock(
|
|
71
|
-
[ts.factory.createExpressionStatement(expression)],
|
|
72
|
-
true,
|
|
73
|
-
);
|
|
74
|
-
}
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { TypeFactory } from "./TypeFactory";
|
|
4
|
+
|
|
5
|
+
export namespace StatementFactory {
|
|
6
|
+
export const mut = (name: string, initializer?: ts.Expression) =>
|
|
7
|
+
ts.factory.createVariableStatement(
|
|
8
|
+
undefined,
|
|
9
|
+
ts.factory.createVariableDeclarationList(
|
|
10
|
+
[
|
|
11
|
+
ts.factory.createVariableDeclaration(
|
|
12
|
+
name,
|
|
13
|
+
undefined,
|
|
14
|
+
initializer === undefined ? TypeFactory.keyword("any") : undefined,
|
|
15
|
+
initializer,
|
|
16
|
+
),
|
|
17
|
+
],
|
|
18
|
+
ts.NodeFlags.Let,
|
|
19
|
+
),
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
export const constant = (name: string, initializer?: ts.Expression) =>
|
|
23
|
+
ts.factory.createVariableStatement(
|
|
24
|
+
undefined,
|
|
25
|
+
ts.factory.createVariableDeclarationList(
|
|
26
|
+
[
|
|
27
|
+
ts.factory.createVariableDeclaration(
|
|
28
|
+
name,
|
|
29
|
+
undefined,
|
|
30
|
+
undefined,
|
|
31
|
+
initializer,
|
|
32
|
+
),
|
|
33
|
+
],
|
|
34
|
+
ts.NodeFlags.Const,
|
|
35
|
+
),
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
export const entry = (key: string) => (value: string) =>
|
|
39
|
+
ts.factory.createVariableDeclarationList(
|
|
40
|
+
[
|
|
41
|
+
ts.factory.createVariableDeclaration(
|
|
42
|
+
ts.factory.createArrayBindingPattern([
|
|
43
|
+
ts.factory.createBindingElement(
|
|
44
|
+
undefined,
|
|
45
|
+
undefined,
|
|
46
|
+
ts.factory.createIdentifier(key),
|
|
47
|
+
undefined,
|
|
48
|
+
),
|
|
49
|
+
ts.factory.createBindingElement(
|
|
50
|
+
undefined,
|
|
51
|
+
undefined,
|
|
52
|
+
ts.factory.createIdentifier(value),
|
|
53
|
+
undefined,
|
|
54
|
+
),
|
|
55
|
+
]),
|
|
56
|
+
undefined,
|
|
57
|
+
undefined,
|
|
58
|
+
undefined,
|
|
59
|
+
),
|
|
60
|
+
],
|
|
61
|
+
ts.NodeFlags.Const,
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
export const transpile = (script: string) =>
|
|
65
|
+
ts.factory.createExpressionStatement(
|
|
66
|
+
ts.factory.createIdentifier(ts.transpile(script)),
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
export const block = (expression: ts.Expression) =>
|
|
70
|
+
ts.factory.createBlock(
|
|
71
|
+
[ts.factory.createExpressionStatement(expression)],
|
|
72
|
+
true,
|
|
73
|
+
);
|
|
74
|
+
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
|
|
3
|
+
import { TypePredicator } from "../utils/TypePredicator";
|
|
4
|
+
|
|
5
|
+
import { Resolved } from "../Resolved";
|
|
6
|
+
|
|
3
7
|
export namespace TypeFactory {
|
|
4
8
|
export const isFunction = (type: ts.Type): boolean =>
|
|
5
9
|
getFunction(type) !== null;
|
|
@@ -22,7 +26,10 @@ export namespace TypeFactory {
|
|
|
22
26
|
(type: ts.Type) =>
|
|
23
27
|
(name: string): ts.Type | null => {
|
|
24
28
|
// FIND TO-JSON METHOD
|
|
25
|
-
const symbol: ts.Symbol | undefined =
|
|
29
|
+
const symbol: ts.Symbol | undefined = checker.getPropertyOfType(
|
|
30
|
+
type,
|
|
31
|
+
name,
|
|
32
|
+
);
|
|
26
33
|
if (!symbol) return null;
|
|
27
34
|
else if (!symbol.valueDeclaration) return null;
|
|
28
35
|
|
|
@@ -44,12 +51,17 @@ export namespace TypeFactory {
|
|
|
44
51
|
(checker: ts.TypeChecker) =>
|
|
45
52
|
(type: ts.Type, symbol?: ts.Symbol): string => {
|
|
46
53
|
// PRIMITIVE
|
|
47
|
-
symbol ??= type.aliasSymbol ?? type.
|
|
54
|
+
symbol ??= type.aliasSymbol ?? type.symbol;
|
|
48
55
|
if (symbol === undefined) return checker.typeToString(type);
|
|
49
56
|
|
|
50
57
|
// UNION OR INTERSECT
|
|
51
|
-
if (
|
|
52
|
-
|
|
58
|
+
if (
|
|
59
|
+
type.aliasSymbol === undefined &&
|
|
60
|
+
TypePredicator.isUnionOrIntersection(type)
|
|
61
|
+
) {
|
|
62
|
+
const joiner: string = TypePredicator.isIntersection(type)
|
|
63
|
+
? " & "
|
|
64
|
+
: " | ";
|
|
53
65
|
return type.types
|
|
54
66
|
.map((child) => getFullName(checker)(child))
|
|
55
67
|
.join(joiner);
|
|
@@ -115,4 +127,64 @@ export namespace TypeFactory {
|
|
|
115
127
|
: ts.SyntaxKind.StringKeyword,
|
|
116
128
|
);
|
|
117
129
|
};
|
|
130
|
+
|
|
131
|
+
export const clone = (type: ts.Type): Resolved<ts.Type> =>
|
|
132
|
+
cloneType(type, 0, new Set());
|
|
118
133
|
}
|
|
134
|
+
|
|
135
|
+
const cloneType = (x: any, depth: number, visited: Set<object>): any => {
|
|
136
|
+
if (x === undefined || depth > 4) return undefined;
|
|
137
|
+
else if (typeof x === "object")
|
|
138
|
+
if (x === null) return null;
|
|
139
|
+
else if (Array.isArray(x))
|
|
140
|
+
return x.map((y) => cloneType(y, depth + 1, visited));
|
|
141
|
+
else {
|
|
142
|
+
visited.add(x);
|
|
143
|
+
const entries = (() => {
|
|
144
|
+
try {
|
|
145
|
+
return Object.entries(x);
|
|
146
|
+
} catch {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
})();
|
|
150
|
+
if (entries === undefined) return undefined;
|
|
151
|
+
return Object.fromEntries(
|
|
152
|
+
entries
|
|
153
|
+
.filter(
|
|
154
|
+
([k, y]) =>
|
|
155
|
+
k !== "parent" &&
|
|
156
|
+
typeof y !== "function" &&
|
|
157
|
+
!(typeof y === "object" && y !== null && visited.has(y) === true),
|
|
158
|
+
)
|
|
159
|
+
.map(([k, y]) => {
|
|
160
|
+
// if (typeof y === "object" && y !== null) console.log(k, get_uid(y));
|
|
161
|
+
return [k, cloneType(y, depth + 1, visited)];
|
|
162
|
+
}),
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
return x;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// function get_uid(obj: object | null | undefined): number {
|
|
169
|
+
// // NO UID EXISTS, THEN ISSUE ONE.
|
|
170
|
+
// if (obj instanceof Object) {
|
|
171
|
+
// if (obj.hasOwnProperty("__get_m_iUID") === false) {
|
|
172
|
+
// const uid: number = ++__s_iUID;
|
|
173
|
+
// Object.defineProperty(obj, "__get_m_iUID", {
|
|
174
|
+
// value: function (): number {
|
|
175
|
+
// return uid;
|
|
176
|
+
// },
|
|
177
|
+
// });
|
|
178
|
+
// }
|
|
179
|
+
|
|
180
|
+
// // RETURNS
|
|
181
|
+
// return (obj as IObject).__get_m_iUID();
|
|
182
|
+
// } else if (obj === undefined) return -1;
|
|
183
|
+
// // is null
|
|
184
|
+
// else return 0;
|
|
185
|
+
// }
|
|
186
|
+
|
|
187
|
+
// interface IObject {
|
|
188
|
+
// readonly __get_m_iUID: () => number;
|
|
189
|
+
// }
|
|
190
|
+
// let __s_iUID: number = 0;
|
|
@@ -31,7 +31,7 @@ export const emplace_metadata_array_type =
|
|
|
31
31
|
// CONSTRUCT VALUE TYPE
|
|
32
32
|
const value: Metadata = explore_metadata(checker)(options)(collection)(
|
|
33
33
|
errors,
|
|
34
|
-
)(arrayType.
|
|
34
|
+
)(checker.getIndexTypeOfType(arrayType, ts.IndexKind.Number)!, {
|
|
35
35
|
...explore,
|
|
36
36
|
escaped: false,
|
|
37
37
|
aliased: false,
|
|
@@ -7,6 +7,7 @@ import { MetadataProperty } from "../../../schemas/metadata/MetadataProperty";
|
|
|
7
7
|
import { Writable } from "../../../typings/Writable";
|
|
8
8
|
|
|
9
9
|
import { ArrayUtil } from "../../../utils/ArrayUtil";
|
|
10
|
+
import { TypePredicator } from "../../../utils/TypePredicator";
|
|
10
11
|
|
|
11
12
|
import { CommentFactory } from "../../CommentFactory";
|
|
12
13
|
import { MetadataCollection } from "../../MetadataCollection";
|
|
@@ -28,7 +29,7 @@ export const emplace_metadata_object =
|
|
|
28
29
|
if (newbie === false) return obj;
|
|
29
30
|
|
|
30
31
|
// PREPARE ASSETS
|
|
31
|
-
const isClass: boolean =
|
|
32
|
+
const isClass: boolean = TypePredicator.isClass(parent);
|
|
32
33
|
const pred: (node: ts.Declaration) => boolean = isClass
|
|
33
34
|
? (node) => {
|
|
34
35
|
const kind: ts.SyntaxKind | undefined = node
|
|
@@ -71,7 +72,9 @@ export const emplace_metadata_object =
|
|
|
71
72
|
//----
|
|
72
73
|
// REGULAR PROPERTIES
|
|
73
74
|
//----
|
|
74
|
-
for (const prop of
|
|
75
|
+
for (const prop of checker.getPropertiesOfType(
|
|
76
|
+
checker.getApparentType(parent),
|
|
77
|
+
)) {
|
|
75
78
|
// CHECK INTERNAL TAG
|
|
76
79
|
if (
|
|
77
80
|
(prop.getJsDocTags(checker) ?? []).find(
|
|
@@ -170,7 +173,7 @@ const isProperty = (node: ts.Declaration) =>
|
|
|
170
173
|
ts.isTypeLiteralNode(node);
|
|
171
174
|
|
|
172
175
|
const iterate_optional_coalesce = (meta: Metadata, type: ts.Type): void => {
|
|
173
|
-
if (
|
|
176
|
+
if (TypePredicator.isUnionOrIntersection(type))
|
|
174
177
|
type.types.forEach((child) => iterate_optional_coalesce(meta, child));
|
|
175
178
|
else iterate_metadata_coalesce(meta, type);
|
|
176
179
|
};
|