typia 4.0.0 → 4.0.1-dev.20230604
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/programmers/ApplicationProgrammer.js +1 -1
- package/lib/programmers/internal/application_array.js +19 -41
- package/lib/programmers/internal/application_array.js.map +1 -1
- package/lib/programmers/internal/application_definition.d.ts +1 -1
- package/lib/programmers/internal/application_definition.js +8 -8
- package/lib/programmers/internal/application_definition.js.map +1 -1
- package/lib/programmers/internal/application_native.js +3 -3
- package/lib/programmers/internal/application_object.js +4 -4
- package/lib/programmers/internal/application_schema.js +3 -3
- package/lib/programmers/internal/application_schema.js.map +1 -1
- package/lib/programmers/internal/application_tuple.js +8 -30
- package/lib/programmers/internal/application_tuple.js.map +1 -1
- package/lib/schemas/IJsonComponents.d.ts +1 -12
- package/lib/schemas/IJsonSchema.d.ts +1 -1
- package/package.json +1 -1
- package/src/IRandomGenerator.ts +34 -34
- package/src/factories/IdentifierFactory.ts +65 -65
- package/src/factories/MetadataCollection.ts +254 -254
- package/src/factories/MetadataFactory.ts +40 -40
- package/src/factories/MetadataTagFactory.ts +300 -300
- package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -34
- package/src/factories/internal/metadata/emplace_metadata_definition.ts +35 -35
- package/src/factories/internal/metadata/emplace_metadata_object.ts +142 -142
- package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -50
- package/src/factories/internal/metadata/explore_metadata.ts +66 -66
- package/src/factories/internal/metadata/iterate_metadata.ts +77 -77
- package/src/factories/internal/metadata/iterate_metadata_array.ts +25 -25
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +130 -130
- package/src/factories/internal/metadata/iterate_metadata_definition.ts +30 -30
- package/src/factories/internal/metadata/iterate_metadata_object.ts +49 -49
- package/src/factories/internal/metadata/iterate_metadata_sort.ts +68 -68
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +24 -24
- package/src/factories/internal/metadata/iterate_metadata_union.ts +68 -68
- package/src/metadata/IMetadata.ts +27 -27
- package/src/metadata/IMetadataAlias.ts +12 -12
- package/src/metadata/IMetadataApplication.ts +7 -7
- package/src/metadata/IMetadataArray.ts +10 -10
- package/src/metadata/IMetadataCollection.ts +11 -11
- package/src/metadata/IMetadataDictionary.ts +14 -14
- package/src/metadata/IMetadataObject.ts +18 -18
- package/src/metadata/IMetadataProperty.ts +11 -11
- package/src/metadata/IMetadataTuple.ts +10 -10
- package/src/metadata/Metadata.ts +585 -585
- package/src/metadata/MetadataAlias.ts +61 -61
- package/src/metadata/MetadataArray.ts +52 -52
- package/src/metadata/MetadataObject.ts +114 -114
- package/src/metadata/MetadataProperty.ts +64 -64
- package/src/metadata/MetadataTuple.ts +53 -53
- package/src/programmers/ApplicationProgrammer.ts +55 -55
- package/src/programmers/AssertProgrammer.ts +291 -291
- package/src/programmers/CheckerProgrammer.ts +1182 -1182
- package/src/programmers/CloneProgrammer.ts +595 -595
- package/src/programmers/FeatureProgrammer.ts +495 -495
- package/src/programmers/IsProgrammer.ts +250 -250
- package/src/programmers/LiteralsProgrammer.ts +66 -66
- package/src/programmers/PruneProgrammer.ts +550 -550
- package/src/programmers/RandomProgrammer.ts +589 -589
- package/src/programmers/StringifyProgrammer.ts +990 -990
- package/src/programmers/ValidateProgrammer.ts +313 -313
- package/src/programmers/helpers/FunctionImporeter.ts +78 -78
- package/src/programmers/helpers/RandomJoiner.ts +173 -173
- package/src/programmers/helpers/UnionExplorer.ts +301 -301
- package/src/programmers/helpers/UnionPredicator.ts +81 -81
- package/src/programmers/helpers/disable_function_importer_declare.ts +26 -26
- package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
- package/src/programmers/internal/application_array.ts +30 -64
- package/src/programmers/internal/application_boolean.ts +15 -15
- package/src/programmers/internal/application_constant.ts +26 -26
- package/src/programmers/internal/application_default.ts +17 -17
- package/src/programmers/internal/application_definition.ts +45 -45
- package/src/programmers/internal/application_native.ts +39 -39
- package/src/programmers/internal/application_number.ts +74 -74
- package/src/programmers/internal/application_object.ts +167 -167
- package/src/programmers/internal/application_schema.ts +156 -164
- package/src/programmers/internal/application_tuple.ts +47 -77
- package/src/programmers/internal/check_union_array_like.ts +329 -329
- package/src/programmers/internal/feature_object_entries.ts +63 -63
- package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -16
- package/src/schemas/IJsonApplication.ts +8 -8
- package/src/schemas/IJsonComponents.ts +34 -45
- package/src/schemas/IJsonSchema.ts +134 -134
- package/src/transformers/CallExpressionTransformer.ts +179 -179
- package/src/transformers/FileTransformer.ts +47 -47
- package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +104 -104
- package/src/transformers/features/miscellaneous/MetadataTransformer.ts +53 -53
- package/src/utils/ArrayUtil.ts +45 -45
- package/src/utils/RandomGenerator.ts +81 -81
|
@@ -30,7 +30,7 @@ var ApplicationProgrammer;
|
|
|
30
30
|
return function (metadatas) {
|
|
31
31
|
var fullOptions = IOptions.complement(options);
|
|
32
32
|
var components = {
|
|
33
|
-
|
|
33
|
+
schemas: {},
|
|
34
34
|
};
|
|
35
35
|
var generator = (0, application_schema_1.application_schema)(fullOptions)(true)(components);
|
|
36
36
|
return __assign({ schemas: metadatas.map(function (meta, i) {
|
|
@@ -23,53 +23,31 @@ var __values = (this && this.__values) || function(o) {
|
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
25
|
exports.application_array = void 0;
|
|
26
|
-
var JSON_SCHEMA_PREFIX_1 = require("./JSON_SCHEMA_PREFIX");
|
|
27
26
|
var application_schema_1 = require("./application_schema");
|
|
28
27
|
var application_array = function (options) {
|
|
29
28
|
return function (components) {
|
|
30
29
|
return function (array) {
|
|
31
30
|
return function (attribute) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
var
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (tag.kind === "minItems")
|
|
43
|
-
schema.minItems = tag.value;
|
|
44
|
-
else if (tag.kind === "maxItems")
|
|
45
|
-
schema.maxItems = tag.value;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
49
|
-
finally {
|
|
50
|
-
try {
|
|
51
|
-
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
52
|
-
}
|
|
53
|
-
finally { if (e_1) throw e_1.error; }
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return schema;
|
|
57
|
-
};
|
|
58
|
-
if (array.recursive === false)
|
|
59
|
-
return generator();
|
|
60
|
-
var key = options.purpose === "ajv"
|
|
61
|
-
? array.name
|
|
62
|
-
: "".concat(array.name).concat(nullable ? ".Nullable" : "");
|
|
63
|
-
var $id = "".concat(JSON_SCHEMA_PREFIX_1.JSON_COMPONENTS_PREFIX, "/arrays/").concat(key);
|
|
64
|
-
if (((_a = components.arrays) === null || _a === void 0 ? void 0 : _a[key]) === undefined) {
|
|
65
|
-
(_b = components.arrays) !== null && _b !== void 0 ? _b : (components.arrays = {});
|
|
66
|
-
components.arrays[key] = {};
|
|
67
|
-
var repeated = __assign(__assign({}, generator()), { $id: options.purpose === "ajv" ? $id : undefined, $recursiveAnchor: options.purpose === "ajv" || undefined });
|
|
68
|
-
components.arrays[key] = repeated;
|
|
31
|
+
var e_1, _a;
|
|
32
|
+
var _b;
|
|
33
|
+
var schema = __assign(__assign({}, attribute), { type: "array", items: (0, application_schema_1.application_schema)(options)(false)(components)(array.value)(attribute) });
|
|
34
|
+
try {
|
|
35
|
+
for (var _c = __values((_b = attribute["x-typia-metaTags"]) !== null && _b !== void 0 ? _b : []), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
36
|
+
var tag = _d.value;
|
|
37
|
+
if (tag.kind === "minItems")
|
|
38
|
+
schema.minItems = tag.value;
|
|
39
|
+
else if (tag.kind === "maxItems")
|
|
40
|
+
schema.maxItems = tag.value;
|
|
69
41
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
42
|
+
}
|
|
43
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
44
|
+
finally {
|
|
45
|
+
try {
|
|
46
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
47
|
+
}
|
|
48
|
+
finally { if (e_1) throw e_1.error; }
|
|
49
|
+
}
|
|
50
|
+
return schema;
|
|
73
51
|
};
|
|
74
52
|
};
|
|
75
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application_array.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_array.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,
|
|
1
|
+
{"version":3,"file":"application_array.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_array.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,2DAA0D;AAKnD,IAAM,iBAAiB,GAC1B,UAAC,OAAuC;IACxC,OAAA,UAAC,UAA2B;QAC5B,OAAA,UAAC,KAAoB;YACrB,OAAA,UAAC,SAAiC;;;gBAE9B,IAAM,MAAM,yBACL,SAAS,KACZ,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAC9D,SAAS,CACZ,GACJ,CAAC;;oBAGF,KAAkB,IAAA,KAAA,SAAA,MAAA,SAAS,CAAC,kBAAkB,CAAC,mCAAI,EAAE,CAAA,gBAAA;wBAAhD,IAAM,GAAG,WAAA;wBACV,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;4BAAE,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;6BACpD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;4BAAE,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;qBAAA;;;;;;;;;gBAClE,OAAO,MAAM,CAAC;YAClB,CAAC;QAfD,CAeC;IAhBD,CAgBC;AAjBD,CAiBC,CAAC;AAnBO,QAAA,iBAAiB,qBAmBxB"}
|
|
@@ -2,4 +2,4 @@ import { MetadataAlias } from "../../metadata/MetadataAlias";
|
|
|
2
2
|
import { IJsonComponents } from "../../schemas/IJsonComponents";
|
|
3
3
|
import { IJsonSchema } from "../../module";
|
|
4
4
|
import { ApplicationProgrammer } from "../ApplicationProgrammer";
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const application_alias: (options: ApplicationProgrammer.IOptions) => <BlockNever extends boolean>(blockNever: BlockNever) => (components: IJsonComponents) => (alias: MetadataAlias) => (nullable: boolean) => IJsonSchema.IReference | IJsonSchema.IRecursiveReference;
|
|
@@ -11,10 +11,10 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.
|
|
14
|
+
exports.application_alias = void 0;
|
|
15
15
|
var JSON_SCHEMA_PREFIX_1 = require("./JSON_SCHEMA_PREFIX");
|
|
16
16
|
var application_schema_1 = require("./application_schema");
|
|
17
|
-
var
|
|
17
|
+
var application_alias = function (options) {
|
|
18
18
|
return function (blockNever) {
|
|
19
19
|
return function (components) {
|
|
20
20
|
return function (alias) {
|
|
@@ -24,14 +24,14 @@ var application_definition = function (options) {
|
|
|
24
24
|
? alias.name
|
|
25
25
|
: "".concat(alias.name).concat(nullable ? ".Nullable" : "");
|
|
26
26
|
var $id = "".concat(JSON_SCHEMA_PREFIX_1.JSON_COMPONENTS_PREFIX, "/aliases/").concat(key);
|
|
27
|
-
if (((_a = components.
|
|
28
|
-
(_b = components.
|
|
29
|
-
components.
|
|
27
|
+
if (((_a = components.schemas) === null || _a === void 0 ? void 0 : _a[key]) === undefined) {
|
|
28
|
+
(_b = components.schemas) !== null && _b !== void 0 ? _b : (components.schemas = {});
|
|
29
|
+
components.schemas[key] = {
|
|
30
30
|
$id: key,
|
|
31
31
|
};
|
|
32
32
|
var schema = (0, application_schema_1.application_schema)(options)(blockNever)(components)(alias.value)({});
|
|
33
|
-
(_c = components.
|
|
34
|
-
components.
|
|
33
|
+
(_c = components.schemas) !== null && _c !== void 0 ? _c : (components.schemas = {});
|
|
34
|
+
components.schemas[key] = __assign({ $id: options.purpose === "ajv" ? $id : undefined, $recursiveAnchor: (options.purpose === "ajv" && alias.recursive) || undefined }, schema);
|
|
35
35
|
}
|
|
36
36
|
return options.purpose === "ajv" && alias.recursive
|
|
37
37
|
? { $recursiveRef: $id }
|
|
@@ -41,5 +41,5 @@ var application_definition = function (options) {
|
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
43
|
};
|
|
44
|
-
exports.
|
|
44
|
+
exports.application_alias = application_alias;
|
|
45
45
|
//# sourceMappingURL=application_definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application_definition.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_definition.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,2DAA8D;AAC9D,2DAA0D;AAEnD,IAAM,
|
|
1
|
+
{"version":3,"file":"application_definition.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_definition.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,2DAA8D;AAC9D,2DAA0D;AAEnD,IAAM,iBAAiB,GAC1B,UAAC,OAAuC;IACxC,OAAA,UAA6B,UAAsB;QACnD,OAAA,UAAC,UAA2B;YAC5B,OAAA,UAAC,KAAoB;gBACrB,OAAA,UACI,QAAiB;;oBAEjB,IAAM,GAAG,GACL,OAAO,CAAC,OAAO,KAAK,KAAK;wBACrB,CAAC,CAAC,KAAK,CAAC,IAAI;wBACZ,CAAC,CAAC,UAAG,KAAK,CAAC,IAAI,SAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;oBACxD,IAAM,GAAG,GAAW,UAAG,2CAAsB,sBAAY,GAAG,CAAE,CAAC;oBAG/D,IAAI,CAAA,MAAA,UAAU,CAAC,OAAO,0CAAG,GAAG,CAAC,MAAK,SAAS,EAAE;wBACzC,MAAA,UAAU,CAAC,OAAO,oCAAlB,UAAU,CAAC,OAAO,GAAK,EAAE,EAAC;wBAC1B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;4BACtB,GAAG,EAAE,GAAG;yBACJ,CAAC;wBAGT,IAAM,MAAM,GAAgB,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAC/D,UAAU,CACb,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAE,CAAC;wBACpB,MAAA,UAAU,CAAC,OAAO,oCAAlB,UAAU,CAAC,OAAO,GAAK,EAAE,EAAC;wBAC1B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,cACnB,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAChD,gBAAgB,EACZ,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAC5D,MAAM,CACZ,CAAC;qBACL;oBACD,OAAO,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS;wBAC/C,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE;wBACxB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;gBACxB,CAAC;YA/BD,CA+BC;QAhCD,CAgCC;IAjCD,CAiCC;AAlCD,CAkCC,CAAC;AApCO,QAAA,iBAAiB,qBAoCxB"}
|
|
@@ -22,9 +22,9 @@ var application_native = function (options) {
|
|
|
22
22
|
var key = options.purpose === "ajv"
|
|
23
23
|
? name
|
|
24
24
|
: "".concat(name).concat(props.nullable ? ".Nullable" : "");
|
|
25
|
-
if (((_a = components.
|
|
26
|
-
(_b = components.
|
|
27
|
-
(_c = (_d = components.
|
|
25
|
+
if (((_a = components.schemas) === null || _a === void 0 ? void 0 : _a[key]) === undefined) {
|
|
26
|
+
(_b = components.schemas) !== null && _b !== void 0 ? _b : (components.schemas = {});
|
|
27
|
+
(_c = (_d = components.schemas)[key]) !== null && _c !== void 0 ? _c : (_d[key] = {
|
|
28
28
|
type: "object",
|
|
29
29
|
$id: options.purpose === "ajv"
|
|
30
30
|
? "".concat(JSON_SCHEMA_PREFIX_1.JSON_COMPONENTS_PREFIX, "/objects/").concat(key)
|
|
@@ -60,10 +60,10 @@ var application_object = function (options) {
|
|
|
60
60
|
? { $recursiveRef: $id }
|
|
61
61
|
: { $ref: $id };
|
|
62
62
|
};
|
|
63
|
-
if (((_b = components.
|
|
63
|
+
if (((_b = components.schemas) === null || _b === void 0 ? void 0 : _b[key]) !== undefined)
|
|
64
64
|
return out();
|
|
65
|
-
(_c = components.
|
|
66
|
-
components.
|
|
65
|
+
(_c = components.schemas) !== null && _c !== void 0 ? _c : (components.schemas = {});
|
|
66
|
+
components.schemas[key] = {};
|
|
67
67
|
var properties = {};
|
|
68
68
|
var extraMeta = {
|
|
69
69
|
patternProperties: {},
|
|
@@ -157,7 +157,7 @@ var application_object = function (options) {
|
|
|
157
157
|
"x-typia-patternProperties": extraProps.patternProperties,
|
|
158
158
|
additionalProperties: join(options)(components)(extraMeta),
|
|
159
159
|
}));
|
|
160
|
-
components.
|
|
160
|
+
components.schemas[key] = schema;
|
|
161
161
|
return out();
|
|
162
162
|
};
|
|
163
163
|
};
|
|
@@ -105,7 +105,7 @@ var application_schema = function (options) {
|
|
|
105
105
|
try {
|
|
106
106
|
for (var _m = __values(meta.arrays), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
107
107
|
var array = _o.value;
|
|
108
|
-
insert((0, application_array_1.application_array)(options)(components)(array)(attribute)
|
|
108
|
+
insert((0, application_array_1.application_array)(options)(components)(array)(attribute));
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
@@ -118,7 +118,7 @@ var application_schema = function (options) {
|
|
|
118
118
|
try {
|
|
119
119
|
for (var _p = __values(meta.tuples), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
120
120
|
var tuple = _q.value;
|
|
121
|
-
insert((0, application_tuple_1.application_tuple)(options)(components)(tuple)(attribute)
|
|
121
|
+
insert((0, application_tuple_1.application_tuple)(options)(components)(tuple)(attribute));
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
@@ -177,7 +177,7 @@ var application_schema = function (options) {
|
|
|
177
177
|
try {
|
|
178
178
|
for (var _v = __values(meta.aliases), _w = _v.next(); !_w.done; _w = _v.next()) {
|
|
179
179
|
var alias = _w.value;
|
|
180
|
-
insert((0, application_definition_1.
|
|
180
|
+
insert((0, application_definition_1.application_alias)(options)(blockNever)(components)(alias)(meta.nullable));
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application_schema.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,gEAA+D;AAC/D,yDAAwD;AACxD,6DAA4D;AAC5D,+DAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"application_schema.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,41 +13,19 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.application_tuple = void 0;
|
|
15
15
|
var Metadata_1 = require("../../metadata/Metadata");
|
|
16
|
-
var JSON_SCHEMA_PREFIX_1 = require("./JSON_SCHEMA_PREFIX");
|
|
17
16
|
var application_schema_1 = require("./application_schema");
|
|
18
17
|
var application_tuple = function (options) {
|
|
19
18
|
return function (components) {
|
|
20
19
|
return function (tuple) {
|
|
21
20
|
return function (attribute) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var wrapper = options.purpose === "ajv" && !((_b = tuple.elements.at(-1)) === null || _b === void 0 ? void 0 : _b.rest)
|
|
31
|
-
? schema
|
|
32
|
-
: __assign(__assign({}, schema), { items: (0, application_schema_1.application_schema)(options)(false)(components)(tuple.elements.reduce(function (x, y) { var _a, _b; return Metadata_1.Metadata.merge((_a = x.rest) !== null && _a !== void 0 ? _a : x, (_b = y.rest) !== null && _b !== void 0 ? _b : y); }, Metadata_1.Metadata.initialize()))(tuple.recursive ? {} : attribute), "x-typia-tuple": schema });
|
|
33
|
-
return wrapper;
|
|
34
|
-
};
|
|
35
|
-
if (tuple.recursive === false)
|
|
36
|
-
return generator();
|
|
37
|
-
var key = options.purpose === "ajv"
|
|
38
|
-
? tuple.name
|
|
39
|
-
: "".concat(tuple.name).concat(nullable ? ".Nullable" : "");
|
|
40
|
-
var $id = "".concat(JSON_SCHEMA_PREFIX_1.JSON_COMPONENTS_PREFIX, "/tuples/").concat(key);
|
|
41
|
-
if (((_a = components.tuples) === null || _a === void 0 ? void 0 : _a[key]) === undefined) {
|
|
42
|
-
(_b = components.tuples) !== null && _b !== void 0 ? _b : (components.tuples = {});
|
|
43
|
-
components.tuples[key] = {};
|
|
44
|
-
var repeated = __assign(__assign({}, generator()), { $id: options.purpose === "ajv" ? $id : undefined, $recursiveAnchor: options.purpose === "ajv" || undefined });
|
|
45
|
-
(_c = components.tuples) !== null && _c !== void 0 ? _c : (components.tuples = {});
|
|
46
|
-
components.tuples[key] = repeated;
|
|
47
|
-
}
|
|
48
|
-
return options.purpose === "ajv" && tuple.recursive
|
|
49
|
-
? __assign(__assign({}, attribute), { $recursiveRef: $id }) : __assign(__assign({}, attribute), { $ref: $id });
|
|
50
|
-
};
|
|
21
|
+
var schema = __assign({ type: "array", items: tuple.elements.map(function (meta, i) {
|
|
22
|
+
var _a;
|
|
23
|
+
return (0, application_schema_1.application_schema)(options)(false)(components)((_a = meta.rest) !== null && _a !== void 0 ? _a : meta)(__assign(__assign({}, attribute), { "x-typia-rest": i === tuple.elements.length - 1 && meta.rest !== null, "x-typia-required": meta.required, "x-typia-optional": meta.optional }));
|
|
24
|
+
}) }, attribute);
|
|
25
|
+
if (options.purpose === "ajv")
|
|
26
|
+
return schema;
|
|
27
|
+
var wrapper = __assign(__assign({}, schema), { items: (0, application_schema_1.application_schema)(options)(false)(components)(tuple.elements.reduce(function (x, y) { var _a, _b; return Metadata_1.Metadata.merge((_a = x.rest) !== null && _a !== void 0 ? _a : x, (_b = y.rest) !== null && _b !== void 0 ? _b : y); }, Metadata_1.Metadata.initialize()))(tuple.recursive ? {} : attribute), "x-typia-tuple": schema });
|
|
28
|
+
return wrapper;
|
|
51
29
|
};
|
|
52
30
|
};
|
|
53
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application_tuple.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_tuple.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oDAAmD;AAMnD,
|
|
1
|
+
{"version":3,"file":"application_tuple.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_tuple.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oDAAmD;AAMnD,2DAA0D;AAKnD,IAAM,iBAAiB,GAC1B,UAAC,OAAuC;IACxC,OAAA,UAAC,UAA2B;QAC5B,OAAA,UAAC,KAAoB;YACrB,OAAA,UACI,SAAiC;gBAEjC,IAAM,MAAM,cACR,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC;;wBAC9B,OAAA,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAC1C,MAAA,IAAI,CAAC,IAAI,mCAAI,IAAI,CACpB,uBACM,SAAS,KACZ,cAAc,EACV,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EACzD,kBAAkB,EAAE,IAAI,CAAC,QAAQ,EACjC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,IACnC,CAAA;qBAAA,CACL,IACE,SAAS,CACf,CAAC;gBACF,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;oBAAE,OAAO,MAAM,CAAC;gBAE7C,IAAM,OAAO,yBACN,MAAM,KACT,KAAK,EAAE,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CACjD,KAAK,CAAC,QAAQ,CAAC,MAAM,CACjB,UAAC,CAAC,EAAE,CAAC,gBAAK,OAAA,mBAAQ,CAAC,KAAK,CAAC,MAAA,CAAC,CAAC,IAAI,mCAAI,CAAC,EAAE,MAAA,CAAC,CAAC,IAAI,mCAAI,CAAC,CAAC,CAAA,EAAA,EAClD,mBAAQ,CAAC,UAAU,EAAE,CACxB,CACJ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EACnC,eAAe,EAAE,MAAM,GAC1B,CAAC;gBACF,OAAO,OAAO,CAAC;YACnB,CAAC;QA/BD,CA+BC;IAhCD,CAgCC;AAjCD,CAiCC,CAAC;AAnCO,QAAA,iBAAiB,qBAmCxB"}
|
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
import { IJsDocTagInfo } from "../metadata/IJsDocTagInfo";
|
|
2
2
|
import { IJsonSchema } from "./IJsonSchema";
|
|
3
3
|
export interface IJsonComponents {
|
|
4
|
-
|
|
5
|
-
aliases?: Record<string, IJsonComponents.IAlias>;
|
|
6
|
-
arrays?: Record<string, IJsonComponents.IArray>;
|
|
7
|
-
tuples?: Record<string, IJsonComponents.ITuple | IJsonComponents.IArray>;
|
|
4
|
+
schemas?: Record<string, IJsonComponents.IObject | IJsonComponents.IAlias>;
|
|
8
5
|
}
|
|
9
6
|
export declare namespace IJsonComponents {
|
|
10
|
-
interface IArray extends IJsonSchema.IArray {
|
|
11
|
-
$id?: string;
|
|
12
|
-
$recursiveAnchor?: true;
|
|
13
|
-
}
|
|
14
|
-
interface ITuple extends IJsonSchema.ITuple {
|
|
15
|
-
$id?: string;
|
|
16
|
-
$recursiveAnchor?: true;
|
|
17
|
-
}
|
|
18
7
|
interface IObject {
|
|
19
8
|
$id?: string;
|
|
20
9
|
$recursiveAnchor?: boolean;
|
|
@@ -68,7 +68,6 @@ export declare namespace IJsonSchema {
|
|
|
68
68
|
}
|
|
69
69
|
interface ITuple extends ISignificant<"array"> {
|
|
70
70
|
items: IJsonSchema[];
|
|
71
|
-
"x-typia-rest": boolean;
|
|
72
71
|
}
|
|
73
72
|
interface IReference extends IAttribute {
|
|
74
73
|
$ref: string;
|
|
@@ -97,5 +96,6 @@ export declare namespace IJsonSchema {
|
|
|
97
96
|
"x-typia-jsDocTags"?: IJsDocTagInfo[];
|
|
98
97
|
"x-typia-required"?: boolean;
|
|
99
98
|
"x-typia-optional"?: boolean;
|
|
99
|
+
"x-typia-rest"?: boolean;
|
|
100
100
|
}
|
|
101
101
|
}
|
package/package.json
CHANGED
package/src/IRandomGenerator.ts
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { Customizable } from "./typings/Customizable";
|
|
2
|
-
|
|
3
|
-
export interface IRandomGenerator {
|
|
4
|
-
boolean(): boolean;
|
|
5
|
-
integer(minimum?: number, maximum?: number): number;
|
|
6
|
-
number(minimum?: number, maximum?: number): number;
|
|
7
|
-
bigint(minimum?: bigint, maximum?: bigint): bigint;
|
|
8
|
-
string(length?: number): string;
|
|
9
|
-
array<T>(closure: (index: number) => T, count?: number): T[];
|
|
10
|
-
length(): number;
|
|
11
|
-
|
|
12
|
-
uuid(): string;
|
|
13
|
-
email(): string;
|
|
14
|
-
url(): string;
|
|
15
|
-
ipv4(): string;
|
|
16
|
-
ipv6(): string;
|
|
17
|
-
pattern(regex: RegExp): string;
|
|
18
|
-
date(minimum?: number, maximum?: number): string;
|
|
19
|
-
datetime(minimum?: number, maximum?: number): string;
|
|
20
|
-
|
|
21
|
-
customs?: IRandomGenerator.CustomMap;
|
|
22
|
-
}
|
|
23
|
-
export namespace IRandomGenerator {
|
|
24
|
-
export type CustomMap = {
|
|
25
|
-
[Type in keyof Customizable]?: (
|
|
26
|
-
tags: ICommentTag[],
|
|
27
|
-
) => Customizable[Type] | undefined;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export interface ICommentTag {
|
|
31
|
-
name: string;
|
|
32
|
-
value?: string;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
1
|
+
import { Customizable } from "./typings/Customizable";
|
|
2
|
+
|
|
3
|
+
export interface IRandomGenerator {
|
|
4
|
+
boolean(): boolean;
|
|
5
|
+
integer(minimum?: number, maximum?: number): number;
|
|
6
|
+
number(minimum?: number, maximum?: number): number;
|
|
7
|
+
bigint(minimum?: bigint, maximum?: bigint): bigint;
|
|
8
|
+
string(length?: number): string;
|
|
9
|
+
array<T>(closure: (index: number) => T, count?: number): T[];
|
|
10
|
+
length(): number;
|
|
11
|
+
|
|
12
|
+
uuid(): string;
|
|
13
|
+
email(): string;
|
|
14
|
+
url(): string;
|
|
15
|
+
ipv4(): string;
|
|
16
|
+
ipv6(): string;
|
|
17
|
+
pattern(regex: RegExp): string;
|
|
18
|
+
date(minimum?: number, maximum?: number): string;
|
|
19
|
+
datetime(minimum?: number, maximum?: number): string;
|
|
20
|
+
|
|
21
|
+
customs?: IRandomGenerator.CustomMap;
|
|
22
|
+
}
|
|
23
|
+
export namespace IRandomGenerator {
|
|
24
|
+
export type CustomMap = {
|
|
25
|
+
[Type in keyof Customizable]?: (
|
|
26
|
+
tags: ICommentTag[],
|
|
27
|
+
) => Customizable[Type] | undefined;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export interface ICommentTag {
|
|
31
|
+
name: string;
|
|
32
|
+
value?: string;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
|
|
3
|
-
import { Escaper } from "../utils/Escaper";
|
|
4
|
-
|
|
5
|
-
import { TypeFactory } from "./TypeFactory";
|
|
6
|
-
|
|
7
|
-
export namespace IdentifierFactory {
|
|
8
|
-
export const identifier = (name: string) =>
|
|
9
|
-
Escaper.variable(name)
|
|
10
|
-
? ts.factory.createIdentifier(name)
|
|
11
|
-
: ts.factory.createStringLiteral(name);
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated Use `access()` function instead.
|
|
15
|
-
*/
|
|
16
|
-
export const join = (prefix: ts.Expression, name: string) =>
|
|
17
|
-
access(prefix)(name);
|
|
18
|
-
|
|
19
|
-
export const access = (target: ts.Expression) => (property: string) => {
|
|
20
|
-
const postfix = identifier(property);
|
|
21
|
-
return ts.isStringLiteral(postfix)
|
|
22
|
-
? ts.factory.createElementAccessExpression(target, postfix)
|
|
23
|
-
: ts.factory.createPropertyAccessExpression(target, postfix);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export const postfix = (str: string): string =>
|
|
27
|
-
Escaper.variable(str)
|
|
28
|
-
? `".${str}"`
|
|
29
|
-
: `"[${JSON.stringify(str).split('"').join('\\"')}]"`;
|
|
30
|
-
|
|
31
|
-
export const parameter = (
|
|
32
|
-
name: string | ts.BindingName,
|
|
33
|
-
type?: ts.TypeNode,
|
|
34
|
-
init?: ts.Expression | ts.PunctuationToken<ts.SyntaxKind.QuestionToken>,
|
|
35
|
-
) => {
|
|
36
|
-
// instead of ts.version >= "4.8"
|
|
37
|
-
if (ts.getDecorators !== undefined)
|
|
38
|
-
return ts.factory.createParameterDeclaration(
|
|
39
|
-
undefined,
|
|
40
|
-
undefined,
|
|
41
|
-
name,
|
|
42
|
-
init?.kind === ts.SyntaxKind.QuestionToken
|
|
43
|
-
? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
|
|
44
|
-
: undefined,
|
|
45
|
-
type ?? TypeFactory.keyword("any"),
|
|
46
|
-
init && init.kind !== ts.SyntaxKind.QuestionToken
|
|
47
|
-
? init
|
|
48
|
-
: undefined,
|
|
49
|
-
);
|
|
50
|
-
// eslint-disable-next-line
|
|
51
|
-
return (ts.factory.createParameterDeclaration as any)(
|
|
52
|
-
undefined,
|
|
53
|
-
undefined,
|
|
54
|
-
undefined,
|
|
55
|
-
name,
|
|
56
|
-
init?.kind === ts.SyntaxKind.QuestionToken
|
|
57
|
-
? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
|
|
58
|
-
: undefined,
|
|
59
|
-
type,
|
|
60
|
-
init && init.kind !== ts.SyntaxKind.QuestionToken
|
|
61
|
-
? init
|
|
62
|
-
: undefined,
|
|
63
|
-
);
|
|
64
|
-
};
|
|
65
|
-
}
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { Escaper } from "../utils/Escaper";
|
|
4
|
+
|
|
5
|
+
import { TypeFactory } from "./TypeFactory";
|
|
6
|
+
|
|
7
|
+
export namespace IdentifierFactory {
|
|
8
|
+
export const identifier = (name: string) =>
|
|
9
|
+
Escaper.variable(name)
|
|
10
|
+
? ts.factory.createIdentifier(name)
|
|
11
|
+
: ts.factory.createStringLiteral(name);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use `access()` function instead.
|
|
15
|
+
*/
|
|
16
|
+
export const join = (prefix: ts.Expression, name: string) =>
|
|
17
|
+
access(prefix)(name);
|
|
18
|
+
|
|
19
|
+
export const access = (target: ts.Expression) => (property: string) => {
|
|
20
|
+
const postfix = identifier(property);
|
|
21
|
+
return ts.isStringLiteral(postfix)
|
|
22
|
+
? ts.factory.createElementAccessExpression(target, postfix)
|
|
23
|
+
: ts.factory.createPropertyAccessExpression(target, postfix);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const postfix = (str: string): string =>
|
|
27
|
+
Escaper.variable(str)
|
|
28
|
+
? `".${str}"`
|
|
29
|
+
: `"[${JSON.stringify(str).split('"').join('\\"')}]"`;
|
|
30
|
+
|
|
31
|
+
export const parameter = (
|
|
32
|
+
name: string | ts.BindingName,
|
|
33
|
+
type?: ts.TypeNode,
|
|
34
|
+
init?: ts.Expression | ts.PunctuationToken<ts.SyntaxKind.QuestionToken>,
|
|
35
|
+
) => {
|
|
36
|
+
// instead of ts.version >= "4.8"
|
|
37
|
+
if (ts.getDecorators !== undefined)
|
|
38
|
+
return ts.factory.createParameterDeclaration(
|
|
39
|
+
undefined,
|
|
40
|
+
undefined,
|
|
41
|
+
name,
|
|
42
|
+
init?.kind === ts.SyntaxKind.QuestionToken
|
|
43
|
+
? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
|
|
44
|
+
: undefined,
|
|
45
|
+
type ?? TypeFactory.keyword("any"),
|
|
46
|
+
init && init.kind !== ts.SyntaxKind.QuestionToken
|
|
47
|
+
? init
|
|
48
|
+
: undefined,
|
|
49
|
+
);
|
|
50
|
+
// eslint-disable-next-line
|
|
51
|
+
return (ts.factory.createParameterDeclaration as any)(
|
|
52
|
+
undefined,
|
|
53
|
+
undefined,
|
|
54
|
+
undefined,
|
|
55
|
+
name,
|
|
56
|
+
init?.kind === ts.SyntaxKind.QuestionToken
|
|
57
|
+
? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
|
|
58
|
+
: undefined,
|
|
59
|
+
type,
|
|
60
|
+
init && init.kind !== ts.SyntaxKind.QuestionToken
|
|
61
|
+
? init
|
|
62
|
+
: undefined,
|
|
63
|
+
);
|
|
64
|
+
};
|
|
65
|
+
}
|