typia 5.2.7-dev.20231109 → 5.3.0-dev.20231112
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/MetadataCollection.d.ts +2 -2
- package/lib/factories/MetadataFactory.js +3 -2
- package/lib/factories/MetadataFactory.js.map +1 -1
- package/lib/factories/internal/metadata/MetadataHelper.js +3 -2
- package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_constant.js +13 -8
- package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js +8 -5
- package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
- package/lib/functional/$from.d.ts +3 -0
- package/lib/functional/$from.js +9 -0
- package/lib/functional/$from.js.map +1 -0
- package/lib/functional/Namespace.js +7 -0
- package/lib/functional/Namespace.js.map +1 -1
- package/lib/module.d.ts +1 -0
- package/lib/module.js +2 -5
- package/lib/module.js.map +1 -1
- package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
- package/lib/programmers/internal/check_string.js +7 -4
- package/lib/programmers/internal/check_string.js.map +1 -1
- package/lib/programmers/internal/metadata_to_pattern.js +3 -1
- package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
- package/lib/reflect.d.ts +3 -0
- package/lib/reflect.js +13 -0
- package/lib/reflect.js.map +1 -0
- package/lib/schemas/metadata/IMetadataApplication.d.ts +2 -2
- package/lib/schemas/metadata/{IMetadataCollection.d.ts → IMetadataComponents.d.ts} +1 -1
- package/lib/schemas/metadata/{IMetadataCollection.js → IMetadataComponents.js} +1 -1
- package/lib/schemas/metadata/IMetadataComponents.js.map +1 -0
- package/lib/schemas/metadata/IMetadataConstant.d.ts +1 -1
- package/lib/schemas/metadata/IMetadataTypeTag.d.ts +2 -2
- package/lib/schemas/metadata/Metadata.d.ts +2 -2
- package/lib/schemas/metadata/Metadata.js +81 -167
- package/lib/schemas/metadata/Metadata.js.map +1 -1
- package/lib/schemas/metadata/MetadataAlias.js +1 -1
- package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
- package/lib/schemas/metadata/MetadataApplication.d.ts +13 -0
- package/lib/schemas/metadata/MetadataApplication.js +30 -0
- package/lib/schemas/metadata/MetadataApplication.js.map +1 -0
- package/lib/schemas/metadata/MetadataArrayType.js +1 -1
- package/lib/schemas/metadata/MetadataArrayType.js.map +1 -1
- package/lib/schemas/metadata/MetadataAtomic.d.ts +1 -0
- package/lib/schemas/metadata/MetadataAtomic.js +28 -1
- package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
- package/lib/schemas/metadata/MetadataComponents.d.ts +16 -0
- package/lib/schemas/metadata/MetadataComponents.js +151 -0
- package/lib/schemas/metadata/MetadataComponents.js.map +1 -0
- package/lib/schemas/metadata/MetadataConstant.d.ts +9 -1
- package/lib/schemas/metadata/MetadataConstant.js +29 -0
- package/lib/schemas/metadata/MetadataConstant.js.map +1 -1
- package/lib/schemas/metadata/MetadataEscaped.js +4 -4
- package/lib/schemas/metadata/MetadataEscaped.js.map +1 -1
- package/lib/schemas/metadata/MetadataObject.js +2 -2
- package/lib/schemas/metadata/MetadataObject.js.map +1 -1
- package/lib/schemas/metadata/MetadataProperty.js +4 -4
- package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
- package/lib/schemas/metadata/MetadataTupleType.js +1 -1
- package/lib/schemas/metadata/MetadataTupleType.js.map +1 -1
- package/lib/transformers/CallExpressionTransformer.js +5 -2
- package/lib/transformers/CallExpressionTransformer.js.map +1 -1
- package/lib/transformers/features/reflect/ReflectMetadataTransformer.d.ts +5 -0
- package/lib/transformers/features/reflect/ReflectMetadataTransformer.js +58 -0
- package/lib/transformers/features/reflect/ReflectMetadataTransformer.js.map +1 -0
- package/package.json +1 -1
- package/src/factories/MetadataCollection.ts +2 -2
- package/src/factories/MetadataFactory.ts +7 -4
- package/src/factories/internal/metadata/MetadataHelper.ts +7 -4
- package/src/factories/internal/metadata/iterate_metadata_constant.ts +10 -8
- package/src/factories/internal/metadata/iterate_metadata_intersection.ts +9 -8
- package/src/functional/$from.ts +5 -0
- package/src/functional/Namespace.ts +7 -0
- package/src/module.ts +1 -19
- package/src/programmers/helpers/ProtobufUtil.ts +3 -2
- package/src/programmers/internal/check_string.ts +5 -2
- package/src/programmers/internal/metadata_to_pattern.ts +3 -1
- package/src/reflect.ts +24 -0
- package/src/schemas/metadata/IMetadataApplication.ts +2 -2
- package/src/schemas/metadata/{IMetadataCollection.ts → IMetadataComponents.ts} +1 -1
- package/src/schemas/metadata/IMetadataConstant.ts +1 -1
- package/src/schemas/metadata/IMetadataTypeTag.ts +2 -2
- package/src/schemas/metadata/Metadata.ts +17 -85
- package/src/schemas/metadata/MetadataAlias.ts +1 -1
- package/src/schemas/metadata/MetadataApplication.ts +44 -0
- package/src/schemas/metadata/MetadataArrayType.ts +1 -1
- package/src/schemas/metadata/MetadataAtomic.ts +28 -1
- package/src/schemas/metadata/MetadataComponents.ts +98 -0
- package/src/schemas/metadata/MetadataConstant.ts +44 -1
- package/src/schemas/metadata/MetadataEscaped.ts +4 -4
- package/src/schemas/metadata/MetadataObject.ts +2 -2
- package/src/schemas/metadata/MetadataProperty.ts +4 -7
- package/src/schemas/metadata/MetadataTupleType.ts +1 -1
- package/src/transformers/CallExpressionTransformer.ts +5 -2
- package/src/transformers/features/{misc/MetadataTransformer.ts → reflect/ReflectMetadataTransformer.ts} +19 -5
- package/lib/schemas/metadata/IMetadataCollection.js.map +0 -1
- package/lib/transformers/features/misc/MetadataTransformer.d.ts +0 -5
- package/lib/transformers/features/misc/MetadataTransformer.js +0 -54
- package/lib/transformers/features/misc/MetadataTransformer.js.map +0 -1
|
@@ -47,7 +47,6 @@ var JsonIsStringifyTransformer_1 = require("./features/json/JsonIsStringifyTrans
|
|
|
47
47
|
var JsonStringifyTransformer_1 = require("./features/json/JsonStringifyTransformer");
|
|
48
48
|
var JsonValidateParseTransformer_1 = require("./features/json/JsonValidateParseTransformer");
|
|
49
49
|
var JsonValidateStringifyTransformer_1 = require("./features/json/JsonValidateStringifyTransformer");
|
|
50
|
-
var MetadataTransformer_1 = require("./features/misc/MetadataTransformer");
|
|
51
50
|
var MiscAssertCloneTransformer_1 = require("./features/misc/MiscAssertCloneTransformer");
|
|
52
51
|
var MiscAssertPruneTransformer_1 = require("./features/misc/MiscAssertPruneTransformer");
|
|
53
52
|
var MiscCloneTransformer_1 = require("./features/misc/MiscCloneTransformer");
|
|
@@ -90,6 +89,7 @@ var ProtobufIsEncodeTransformer_1 = require("./features/protobuf/ProtobufIsEncod
|
|
|
90
89
|
var ProtobufMessageTransformer_1 = require("./features/protobuf/ProtobufMessageTransformer");
|
|
91
90
|
var ProtobufValidateDecodeTransformer_1 = require("./features/protobuf/ProtobufValidateDecodeTransformer");
|
|
92
91
|
var ProtobufValidateEncodeTransformer_1 = require("./features/protobuf/ProtobufValidateEncodeTransformer");
|
|
92
|
+
var ReflectMetadataTransformer_1 = require("./features/reflect/ReflectMetadataTransformer");
|
|
93
93
|
var CallExpressionTransformer;
|
|
94
94
|
(function (CallExpressionTransformer) {
|
|
95
95
|
CallExpressionTransformer.transform = function (project) {
|
|
@@ -134,7 +134,7 @@ var FUNCTORS = {
|
|
|
134
134
|
equals: function () { return IsTransformer_1.IsTransformer.transform(true); },
|
|
135
135
|
validateEquals: function () { return ValidateTransformer_1.ValidateTransformer.transform(true); },
|
|
136
136
|
random: function () { return RandomTransformer_1.RandomTransformer.transform; },
|
|
137
|
-
metadata: function () { return
|
|
137
|
+
metadata: function () { return ReflectMetadataTransformer_1.ReflectMetadataTransformer.transform; },
|
|
138
138
|
createAssert: function () { return CreateAssertTransformer_1.CreateAssertTransformer.transform(false); },
|
|
139
139
|
createAssertType: function () { return CreateAssertTransformer_1.CreateAssertTransformer.transform(false); },
|
|
140
140
|
createIs: function () { return CreateIsTransformer_1.CreateIsTransformer.transform(false); },
|
|
@@ -214,6 +214,9 @@ var FUNCTORS = {
|
|
|
214
214
|
return ProtobufCreateValidateDecodeTransformer_1.ProtobufCreateValidateDecodeTransformer.transform;
|
|
215
215
|
},
|
|
216
216
|
},
|
|
217
|
+
reflect: {
|
|
218
|
+
metadata: function () { return ReflectMetadataTransformer_1.ReflectMetadataTransformer.transform; },
|
|
219
|
+
},
|
|
217
220
|
misc: {
|
|
218
221
|
literals: function () { return function (project) { return function () {
|
|
219
222
|
return MiscLiteralsTransformer_1.MiscLiteralsTransformer.transform(project);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallExpressionTransformer.js","sourceRoot":"","sources":["../../src/transformers/CallExpressionTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAwB;AAGxB,8DAA6D;AAG7D,kEAAiE;AACjE,8EAA6E;AAC7E,sEAAqE;AACrE,8EAA6E;AAC7E,kFAAiF;AACjF,0DAAyD;AACzD,kEAAiE;AACjE,sEAAqE;AACrE,yGAAwG;AACxG,qGAAoG;AACpG,6FAA4F;AAC5F,iGAAgG;AAChG,6FAA4F;AAC5F,iGAAgG;AAChG,yFAAwF;AACxF,6GAA4G;AAC5G,yGAAwG;AACxG,6FAA4F;AAC5F,yFAAwF;AACxF,iFAAgF;AAChF,qFAAoF;AACpF,iFAAgF;AAChF,qFAAoF;AACpF,6EAA4E;AAC5E,iGAAgG;AAChG,6FAA4F;AAC5F,yFAAwF;AACxF,yFAAwF;AACxF,iGAAgG;AAChG,qGAAoG;AACpG,6GAA4G;AAC5G,6FAA4F;AAC5F,qGAAoG;AACpG,iGAAgG;AAChG,yGAAwG;AACxG,+GAA+G;AAC/G,iFAAgF;AAChF,yFAAwF;AACxF,qFAAoF;AACpF,6FAA4F;AAC5F,qGAAoG;AACpG,
|
|
1
|
+
{"version":3,"file":"CallExpressionTransformer.js","sourceRoot":"","sources":["../../src/transformers/CallExpressionTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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.ReflectMetadataTransformer = void 0;
|
|
7
|
+
var typescript_1 = __importDefault(require("typescript"));
|
|
8
|
+
var IdentifierFactory_1 = require("../../../factories/IdentifierFactory");
|
|
9
|
+
var LiteralFactory_1 = require("../../../factories/LiteralFactory");
|
|
10
|
+
var MetadataCollection_1 = require("../../../factories/MetadataCollection");
|
|
11
|
+
var MetadataFactory_1 = require("../../../factories/MetadataFactory");
|
|
12
|
+
var TypeFactory_1 = require("../../../factories/TypeFactory");
|
|
13
|
+
var TransformerError_1 = require("../../TransformerError");
|
|
14
|
+
var ReflectMetadataTransformer;
|
|
15
|
+
(function (ReflectMetadataTransformer) {
|
|
16
|
+
ReflectMetadataTransformer.transform = function (project) {
|
|
17
|
+
return function (modulo) {
|
|
18
|
+
return function (expression) {
|
|
19
|
+
var _a;
|
|
20
|
+
if (!((_a = expression.typeArguments) === null || _a === void 0 ? void 0 : _a.length))
|
|
21
|
+
throw new TransformerError_1.TransformerError({
|
|
22
|
+
code: "typia.metadata",
|
|
23
|
+
message: "no generic argument.",
|
|
24
|
+
});
|
|
25
|
+
var top = expression.typeArguments[0];
|
|
26
|
+
if (!typescript_1.default.isTupleTypeNode(top))
|
|
27
|
+
return expression;
|
|
28
|
+
else if (top.elements.some(function (child) { return !typescript_1.default.isTypeNode(child); }))
|
|
29
|
+
return expression;
|
|
30
|
+
var types = top.elements.map(function (child) {
|
|
31
|
+
return project.checker.getTypeFromTypeNode(child);
|
|
32
|
+
});
|
|
33
|
+
if (types.some(function (t) { return t.isTypeParameter(); }))
|
|
34
|
+
throw new TransformerError_1.TransformerError({
|
|
35
|
+
code: "typia.reflect.metadata",
|
|
36
|
+
message: "non-specified generic argument(s).",
|
|
37
|
+
});
|
|
38
|
+
var collection = new MetadataCollection_1.MetadataCollection();
|
|
39
|
+
var metadatas = types.map(function (type) {
|
|
40
|
+
var result = MetadataFactory_1.MetadataFactory.analyze(project.checker, project.context)({
|
|
41
|
+
escape: true,
|
|
42
|
+
constant: true,
|
|
43
|
+
absorb: true,
|
|
44
|
+
})(collection)(type);
|
|
45
|
+
if (result.success === false)
|
|
46
|
+
throw TransformerError_1.TransformerError.from("typia.reflect.metadata")(result.errors);
|
|
47
|
+
return result.data;
|
|
48
|
+
});
|
|
49
|
+
var app = {
|
|
50
|
+
metadatas: metadatas.map(function (metadata) { return metadata.toJSON(); }),
|
|
51
|
+
components: collection.toJSON(),
|
|
52
|
+
};
|
|
53
|
+
return typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createParenthesizedExpression(typescript_1.default.factory.createAsExpression(modulo, TypeFactory_1.TypeFactory.keyword("any"))))("from"), undefined, [LiteralFactory_1.LiteralFactory.generate(app)]);
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
})(ReflectMetadataTransformer || (exports.ReflectMetadataTransformer = ReflectMetadataTransformer = {}));
|
|
58
|
+
//# sourceMappingURL=ReflectMetadataTransformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReflectMetadataTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/reflect/ReflectMetadataTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,0EAAyE;AACzE,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AACrE,8DAA6D;AAM7D,2DAA0D;AAE1D,IAAiB,0BAA0B,CA+D1C;AA/DD,WAAiB,0BAA0B;IAC1B,oCAAS,GAClB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,UAA6B;;gBAC1B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,MAAM,CAAA;oBACjC,MAAM,IAAI,mCAAgB,CAAC;wBACvB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,sBAAsB;qBAClC,CAAC,CAAC;gBAGP,IAAM,GAAG,GAAY,UAAU,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;gBAClD,IAAI,CAAC,oBAAE,CAAC,eAAe,CAAC,GAAG,CAAC;oBAAE,OAAO,UAAU,CAAC;qBAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,oBAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;oBACxD,OAAO,UAAU,CAAC;gBAGtB,IAAM,KAAK,GAAc,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK;oBAC5C,OAAA,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAoB,CAAC;gBAAzD,CAAyD,CAC5D,CAAC;gBACF,IAAI,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,eAAe,EAAE,EAAnB,CAAmB,CAAC;oBACtC,MAAM,IAAI,mCAAgB,CAAC;wBACvB,IAAI,EAAE,wBAAwB;wBAC9B,OAAO,EAAE,oCAAoC;qBAChD,CAAC,CAAC;gBAGP,IAAM,UAAU,GAAuB,IAAI,uCAAkB,EAAE,CAAC;gBAChE,IAAM,SAAS,GAAoB,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;oBAC9C,IAAM,MAAM,GAAG,iCAAe,CAAC,OAAO,CAClC,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAClB,CAAC;wBACE,MAAM,EAAE,IAAI;wBACZ,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE,IAAI;qBACf,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;oBACrB,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;wBACxB,MAAM,mCAAgB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CACjD,MAAM,CAAC,MAAM,CAChB,CAAC;oBACN,OAAO,MAAM,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC,CAAC;gBAGH,IAAM,GAAG,GAAyB;oBAC9B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,MAAM,EAAE,EAAjB,CAAiB,CAAC;oBACzD,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE;iBAClC,CAAC;gBACF,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAClC,qCAAiB,CAAC,MAAM,CACpB,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACpC,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CACzB,MAAM,EACN,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAC7B,CACJ,CACJ,CAAC,MAAM,CAAC,EACT,SAAS,EACT,CAAC,+BAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACjC,CAAC;YACN,CAAC;QA1DD,CA0DC;IA3DD,CA2DC,CAAC;AACV,CAAC,EA/DgB,0BAA0B,0CAA1B,0BAA0B,QA+D1C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { IMetadataComponents } from "../schemas/metadata/IMetadataComponents";
|
|
4
4
|
import { Metadata } from "../schemas/metadata/Metadata";
|
|
5
5
|
import { MetadataAlias } from "../schemas/metadata/MetadataAlias";
|
|
6
6
|
import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
|
|
@@ -230,7 +230,7 @@ export class MetadataCollection {
|
|
|
230
230
|
if (recursive) Writable(tuple).index = this.recursive_tuple_index_++;
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
-
public toJSON():
|
|
233
|
+
public toJSON(): IMetadataComponents {
|
|
234
234
|
return {
|
|
235
235
|
objects: this.objects().map((o) => o.toJSON()),
|
|
236
236
|
aliases: this.aliases().map((d) => d.toJSON()),
|
|
@@ -3,6 +3,7 @@ import ts from "typescript";
|
|
|
3
3
|
import { Metadata } from "../schemas/metadata/Metadata";
|
|
4
4
|
import { MetadataAlias } from "../schemas/metadata/MetadataAlias";
|
|
5
5
|
import { MetadataArrayType } from "../schemas/metadata/MetadataArrayType";
|
|
6
|
+
import { MetadataConstant } from "../schemas/metadata/MetadataConstant";
|
|
6
7
|
import { MetadataObject } from "../schemas/metadata/MetadataObject";
|
|
7
8
|
import { MetadataTupleType } from "../schemas/metadata/MetadataTupleType";
|
|
8
9
|
import { explore_metadata } from "./internal/metadata/explore_metadata";
|
|
@@ -79,10 +80,12 @@ export namespace MetadataFactory {
|
|
|
79
80
|
*/
|
|
80
81
|
export const soleLiteral = (value: string): Metadata => {
|
|
81
82
|
const meta: Metadata = Metadata.initialize();
|
|
82
|
-
meta.constants.push(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
meta.constants.push(
|
|
84
|
+
MetadataConstant.from({
|
|
85
|
+
values: [value],
|
|
86
|
+
type: "string",
|
|
87
|
+
}),
|
|
88
|
+
);
|
|
86
89
|
return meta;
|
|
87
90
|
};
|
|
88
91
|
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { Metadata } from "../../../schemas/metadata/Metadata";
|
|
2
|
+
import { MetadataConstant } from "../../../schemas/metadata/MetadataConstant";
|
|
2
3
|
|
|
3
4
|
export namespace MetadataHelper {
|
|
4
5
|
export const literal_to_metadata = (key: string): Metadata => {
|
|
5
6
|
const metadata: Metadata = Metadata.initialize();
|
|
6
|
-
metadata.constants.push(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
metadata.constants.push(
|
|
8
|
+
MetadataConstant.create({
|
|
9
|
+
type: "string",
|
|
10
|
+
values: [key],
|
|
11
|
+
}),
|
|
12
|
+
);
|
|
10
13
|
return metadata;
|
|
11
14
|
};
|
|
12
15
|
}
|
|
@@ -26,10 +26,11 @@ export const iterate_metadata_constant =
|
|
|
26
26
|
const constant: MetadataConstant = ArrayUtil.take(
|
|
27
27
|
meta.constants,
|
|
28
28
|
(elem) => elem.type === typeof value,
|
|
29
|
-
() =>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
() =>
|
|
30
|
+
MetadataConstant.create({
|
|
31
|
+
type: typeof value as "number",
|
|
32
|
+
values: [],
|
|
33
|
+
}),
|
|
33
34
|
);
|
|
34
35
|
ArrayUtil.add(
|
|
35
36
|
constant.values as Array<any>,
|
|
@@ -42,10 +43,11 @@ export const iterate_metadata_constant =
|
|
|
42
43
|
const constant: MetadataConstant = ArrayUtil.take(
|
|
43
44
|
meta.constants,
|
|
44
45
|
(elem) => elem.type === "boolean",
|
|
45
|
-
() =>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
() =>
|
|
47
|
+
MetadataConstant.create({
|
|
48
|
+
type: "boolean",
|
|
49
|
+
values: [],
|
|
50
|
+
}),
|
|
49
51
|
);
|
|
50
52
|
ArrayUtil.add(
|
|
51
53
|
constant.values as boolean[],
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
|
|
3
|
-
import { IMetadataConstant } from "../../../schemas/metadata/IMetadataConstant";
|
|
4
3
|
import { IMetadataTypeTag } from "../../../schemas/metadata/IMetadataTypeTag";
|
|
5
4
|
import { Metadata } from "../../../schemas/metadata/Metadata";
|
|
6
5
|
import { MetadataAtomic } from "../../../schemas/metadata/MetadataAtomic";
|
|
6
|
+
import { MetadataConstant } from "../../../schemas/metadata/MetadataConstant";
|
|
7
7
|
|
|
8
8
|
import { ArrayUtil } from "../../../utils/ArrayUtil";
|
|
9
9
|
|
|
@@ -181,7 +181,7 @@ export const iterate_metadata_intersection =
|
|
|
181
181
|
elem,
|
|
182
182
|
(a, b) => a === b,
|
|
183
183
|
);
|
|
184
|
-
else meta.constants.push(
|
|
184
|
+
else meta.constants.push(MetadataConstant.create(c));
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
return true;
|
|
@@ -210,13 +210,14 @@ export const iterate_metadata_intersection =
|
|
|
210
210
|
(a, b) => a.type === b.type,
|
|
211
211
|
);
|
|
212
212
|
else
|
|
213
|
-
ArrayUtil.take<
|
|
213
|
+
ArrayUtil.take<MetadataConstant>(
|
|
214
214
|
meta.constants,
|
|
215
215
|
(x) => x.type === "boolean",
|
|
216
|
-
() =>
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
216
|
+
() =>
|
|
217
|
+
MetadataConstant.create({
|
|
218
|
+
type: "boolean",
|
|
219
|
+
values: [booleanLiteral],
|
|
220
|
+
}),
|
|
220
221
|
);
|
|
221
222
|
else if (target === "array") {
|
|
222
223
|
const name: string = arrays.values().next().value;
|
|
@@ -247,7 +248,7 @@ export const iterate_metadata_intersection =
|
|
|
247
248
|
.find((a) => a.type === target)!
|
|
248
249
|
.tags.push(tags);
|
|
249
250
|
else {
|
|
250
|
-
const constant:
|
|
251
|
+
const constant: MetadataConstant = meta.constants.find(
|
|
251
252
|
(c) => c.type === "boolean",
|
|
252
253
|
)!;
|
|
253
254
|
constant.tags ??= [];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IMetadataApplication } from "../schemas/metadata/IMetadataApplication";
|
|
2
|
+
import { MetadataApplication } from "../schemas/metadata/MetadataApplication";
|
|
3
|
+
|
|
4
|
+
export const $from = (json: IMetadataApplication): MetadataApplication =>
|
|
5
|
+
MetadataApplication.from(json);
|
|
@@ -12,6 +12,7 @@ import { $QueryReader } from "./$QueryReader";
|
|
|
12
12
|
import { $any } from "./$any";
|
|
13
13
|
import { $convention } from "./$convention";
|
|
14
14
|
import { $every } from "./$every";
|
|
15
|
+
import { $from } from "./$from";
|
|
15
16
|
import { $guard } from "./$guard";
|
|
16
17
|
import { $is_between } from "./$is_between";
|
|
17
18
|
import { $join } from "./$join";
|
|
@@ -113,6 +114,12 @@ export namespace Namespace {
|
|
|
113
114
|
});
|
|
114
115
|
}
|
|
115
116
|
|
|
117
|
+
export namespace reflect {
|
|
118
|
+
export const metadata = () => ({
|
|
119
|
+
from: $from,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
116
123
|
export namespace http {
|
|
117
124
|
export const query = () => $QueryReader;
|
|
118
125
|
export const headers = () => $HeadersReader;
|
package/src/module.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Namespace } from "./functional/Namespace";
|
|
2
2
|
|
|
3
|
-
import { IMetadataApplication } from "./schemas/metadata/IMetadataApplication";
|
|
4
|
-
|
|
5
3
|
import { IRandomGenerator } from "./IRandomGenerator";
|
|
6
4
|
import { IValidation } from "./IValidation";
|
|
7
5
|
import { Resolved } from "./Resolved";
|
|
@@ -11,6 +9,7 @@ export * as json from "./json";
|
|
|
11
9
|
export * as misc from "./misc";
|
|
12
10
|
export * as notations from "./notations";
|
|
13
11
|
export * as protobuf from "./protobuf";
|
|
12
|
+
export * as reflect from "./reflect";
|
|
14
13
|
export * as tags from "./tags";
|
|
15
14
|
|
|
16
15
|
export * from "./schemas/json/IJsonApplication";
|
|
@@ -425,23 +424,6 @@ export function random(): never {
|
|
|
425
424
|
}
|
|
426
425
|
Object.assign(random, Namespace.random());
|
|
427
426
|
|
|
428
|
-
/**
|
|
429
|
-
* @internal
|
|
430
|
-
*/
|
|
431
|
-
export function metadata(): never;
|
|
432
|
-
|
|
433
|
-
/**
|
|
434
|
-
* @internal
|
|
435
|
-
*/
|
|
436
|
-
export function metadata<Types extends unknown[]>(): IMetadataApplication;
|
|
437
|
-
|
|
438
|
-
/**
|
|
439
|
-
* @internal
|
|
440
|
-
*/
|
|
441
|
-
export function metadata(): never {
|
|
442
|
-
halt("metadata");
|
|
443
|
-
}
|
|
444
|
-
|
|
445
427
|
/* -----------------------------------------------------------
|
|
446
428
|
FACTORY FUNCTIONS
|
|
447
429
|
----------------------------------------------------------- */
|
|
@@ -26,7 +26,7 @@ export namespace ProtobufUtil {
|
|
|
26
26
|
if (c.type === "boolean") set.add("bool");
|
|
27
27
|
else if (c.type === "bigint") set.add("uint64");
|
|
28
28
|
else if (c.type === "number")
|
|
29
|
-
set.add(deduce_numeric_type(c.values));
|
|
29
|
+
set.add(deduce_numeric_type(c.values as number[]));
|
|
30
30
|
else if (c.type === "string") set.add("string");
|
|
31
31
|
for (const atomic of meta.atomics)
|
|
32
32
|
if (atomic.type === "boolean") set.add("bool");
|
|
@@ -42,7 +42,8 @@ export namespace ProtobufUtil {
|
|
|
42
42
|
export const getNumbers = (meta: Metadata) => {
|
|
43
43
|
const set: Set<ProtobufAtomic.Numeric> = new Set();
|
|
44
44
|
for (const c of meta.constants)
|
|
45
|
-
if (c.type === "number")
|
|
45
|
+
if (c.type === "number")
|
|
46
|
+
set.add(deduce_numeric_type(c.values as number[]));
|
|
46
47
|
for (const atomic of meta.atomics)
|
|
47
48
|
if (atomic.type === "number")
|
|
48
49
|
decode_number(atomic.tags).forEach((t) => set.add(t));
|
|
@@ -40,8 +40,11 @@ const check_string_type_tags =
|
|
|
40
40
|
.map((row) =>
|
|
41
41
|
row.map((tag) => ({
|
|
42
42
|
expected: `string & ${tag.name}`,
|
|
43
|
-
expression:
|
|
44
|
-
tag.
|
|
43
|
+
expression: (
|
|
44
|
+
tag.predicate ??
|
|
45
|
+
ExpressionFactory.transpile(project.context)(
|
|
46
|
+
tag.validate!,
|
|
47
|
+
)
|
|
45
48
|
)(input),
|
|
46
49
|
})),
|
|
47
50
|
);
|
|
@@ -18,7 +18,9 @@ export const metadata_to_pattern =
|
|
|
18
18
|
meta.constants.map((c) => {
|
|
19
19
|
if (c.type !== "string")
|
|
20
20
|
return c.values.map((v) => v.toString());
|
|
21
|
-
return c.values.map((str) =>
|
|
21
|
+
return (c.values as string[]).map((str) =>
|
|
22
|
+
PatternUtil.escape(str),
|
|
23
|
+
);
|
|
22
24
|
}),
|
|
23
25
|
);
|
|
24
26
|
for (const a of meta.atomics)
|
package/src/reflect.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Namespace } from "./functional/Namespace";
|
|
2
|
+
|
|
3
|
+
import { MetadataApplication } from "./schemas/metadata/MetadataApplication";
|
|
4
|
+
|
|
5
|
+
export function metadata(): never;
|
|
6
|
+
|
|
7
|
+
export function metadata<Types extends unknown[]>(): MetadataApplication;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export function metadata(): never {
|
|
13
|
+
halt("metadata");
|
|
14
|
+
}
|
|
15
|
+
Object.assign(metadata, Namespace.reflect.metadata());
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
function halt(name: string): never {
|
|
21
|
+
throw new Error(
|
|
22
|
+
`Error on typia.reflect.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IMetadata } from "./IMetadata";
|
|
2
|
-
import {
|
|
2
|
+
import { IMetadataComponents } from "./IMetadataComponents";
|
|
3
3
|
|
|
4
4
|
export interface IMetadataApplication {
|
|
5
5
|
metadatas: IMetadata[];
|
|
6
|
-
|
|
6
|
+
components: IMetadataComponents;
|
|
7
7
|
}
|
|
@@ -3,7 +3,7 @@ import { IMetadataArrayType } from "./IMetadataArrayType";
|
|
|
3
3
|
import { IMetadataObject } from "./IMetadataObject";
|
|
4
4
|
import { IMetadataTupleType } from "./IMetadataTupleType";
|
|
5
5
|
|
|
6
|
-
export interface
|
|
6
|
+
export interface IMetadataComponents {
|
|
7
7
|
objects: IMetadataObject[];
|
|
8
8
|
aliases: IMetadataAlias[];
|
|
9
9
|
arrays: IMetadataArrayType[];
|
|
@@ -6,7 +6,7 @@ export type IMetadataConstant =
|
|
|
6
6
|
| IMetadataConstant.IBase<"boolean", boolean>
|
|
7
7
|
| IMetadataConstant.IBase<"number", number>
|
|
8
8
|
| IMetadataConstant.IBase<"string", string>
|
|
9
|
-
| IMetadataConstant.IBase<"bigint",
|
|
9
|
+
| IMetadataConstant.IBase<"bigint", string>;
|
|
10
10
|
export namespace IMetadataConstant {
|
|
11
11
|
export interface IBase<
|
|
12
12
|
Type extends Atomic.Literal,
|
|
@@ -4,9 +4,9 @@ export interface IMetadataTypeTag {
|
|
|
4
4
|
target: "boolean" | "bigint" | "number" | "string" | "array";
|
|
5
5
|
name: string;
|
|
6
6
|
kind: string;
|
|
7
|
-
value: any;
|
|
8
|
-
validate: string | undefined;
|
|
9
7
|
exclusive: boolean | string[];
|
|
8
|
+
value?: any;
|
|
9
|
+
validate?: string | undefined;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @internal
|