typia 3.4.14 → 3.4.16
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/README.md +5 -2
- package/lib/executable/internal/TypiaSetupWizard.d.ts +6 -2
- package/lib/executable/internal/TypiaSetupWizard.js +26 -25
- package/lib/executable/internal/TypiaSetupWizard.js.map +1 -1
- package/lib/executable/typia.js +11 -10
- package/lib/executable/typia.js.map +1 -1
- package/lib/factories/MetadataFactory.d.ts +1 -0
- package/lib/factories/MetadataFactory.js +1 -1
- package/lib/factories/MetadataFactory.js.map +1 -1
- package/lib/factories/MetadataTagFactory.js +4 -1
- package/lib/factories/MetadataTagFactory.js.map +1 -1
- package/lib/factories/internal/{MetadataHelper.d.ts → metadata/MetadataHelper.d.ts} +1 -1
- package/lib/factories/internal/{MetadataHelper.js → metadata/MetadataHelper.js} +1 -1
- package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -0
- package/lib/factories/internal/{emplace_metadata_object.d.ts → metadata/emplace_metadata_object.d.ts} +3 -3
- package/lib/factories/internal/{emplace_metadata_object.js → metadata/emplace_metadata_object.js} +5 -5
- package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -0
- package/lib/factories/internal/{explore_metadata.d.ts → metadata/explore_metadata.d.ts} +3 -3
- package/lib/factories/internal/{explore_metadata.js → metadata/explore_metadata.js} +5 -3
- package/lib/factories/internal/metadata/explore_metadata.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata.d.ts → metadata/iterate_metadata.d.ts} +3 -3
- package/lib/factories/internal/{iterate_metadata.js → metadata/iterate_metadata.js} +1 -1
- package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_array.d.ts → metadata/iterate_metadata_array.d.ts} +3 -3
- package/lib/factories/internal/{iterate_metadata_array.js → metadata/iterate_metadata_array.js} +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_atomic.d.ts → metadata/iterate_metadata_atomic.d.ts} +1 -1
- package/lib/factories/internal/{iterate_metadata_atomic.js → metadata/iterate_metadata_atomic.js} +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_coalesce.d.ts → metadata/iterate_metadata_coalesce.d.ts} +1 -1
- package/lib/factories/internal/{iterate_metadata_coalesce.js → metadata/iterate_metadata_coalesce.js} +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_coalesce.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_constant.d.ts → metadata/iterate_metadata_constant.d.ts} +2 -2
- package/lib/factories/internal/{iterate_metadata_constant.js → metadata/iterate_metadata_constant.js} +1 -1
- package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_map.d.ts → metadata/iterate_metadata_map.d.ts} +3 -3
- package/lib/factories/internal/{iterate_metadata_map.js → metadata/iterate_metadata_map.js} +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_native.d.ts → metadata/iterate_metadata_native.d.ts} +1 -1
- package/lib/factories/internal/{iterate_metadata_native.js → metadata/iterate_metadata_native.js} +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_object.d.ts → metadata/iterate_metadata_object.d.ts} +3 -3
- package/lib/factories/internal/{iterate_metadata_object.js → metadata/iterate_metadata_object.js} +3 -3
- package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_resolve.d.ts → metadata/iterate_metadata_resolve.d.ts} +3 -3
- package/lib/factories/internal/{iterate_metadata_resolve.js → metadata/iterate_metadata_resolve.js} +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_set.d.ts → metadata/iterate_metadata_set.d.ts} +3 -3
- package/lib/factories/internal/{iterate_metadata_set.js → metadata/iterate_metadata_set.js} +2 -2
- package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_template.d.ts → metadata/iterate_metadata_template.d.ts} +3 -3
- package/lib/factories/internal/{iterate_metadata_template.js → metadata/iterate_metadata_template.js} +0 -0
- package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_tuple.d.ts → metadata/iterate_metadata_tuple.d.ts} +3 -3
- package/lib/factories/internal/{iterate_metadata_tuple.js → metadata/iterate_metadata_tuple.js} +3 -3
- package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -0
- package/lib/factories/internal/{iterate_metadata_union.d.ts → metadata/iterate_metadata_union.d.ts} +3 -3
- package/lib/factories/internal/{iterate_metadata_union.js → metadata/iterate_metadata_union.js} +3 -3
- package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -0
- package/lib/functional/$number.js +2 -9
- package/lib/functional/$number.js.map +1 -1
- package/lib/programmers/AssertParseProgrammer.js +12 -1
- package/lib/programmers/AssertParseProgrammer.js.map +1 -1
- package/lib/programmers/AssertProgrammer.js +2 -1
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/AssertStringifyProgrammer.js +13 -2
- package/lib/programmers/AssertStringifyProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.js +6 -0
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/IsParseProgrammer.js +12 -1
- package/lib/programmers/IsParseProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.js +5 -2
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/IsStringifyProgrammer.js +13 -2
- package/lib/programmers/IsStringifyProgrammer.js.map +1 -1
- package/lib/programmers/StringifyProgrammer.js +5 -0
- package/lib/programmers/StringifyProgrammer.js.map +1 -1
- package/lib/programmers/ValidateParseProgrammer.js +12 -1
- package/lib/programmers/ValidateParseProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +2 -1
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/ValidateStringifyProgrammer.js +13 -2
- package/lib/programmers/ValidateStringifyProgrammer.js.map +1 -1
- package/lib/programmers/helpers/OptionPredicator.d.ts +2 -1
- package/lib/programmers/helpers/OptionPredicator.js +7 -3
- package/lib/programmers/helpers/OptionPredicator.js.map +1 -1
- package/lib/programmers/internal/application_schema.js +7 -3
- package/lib/programmers/internal/application_schema.js.map +1 -1
- package/lib/programmers/internal/check_bigint.d.ts +3 -0
- package/lib/programmers/internal/check_bigint.js +97 -0
- package/lib/programmers/internal/check_bigint.js.map +1 -0
- package/lib/programmers/internal/check_number.js +21 -22
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/schemas/IJsonSchema.d.ts +3 -5
- package/lib/transformers/ITransformOptions.d.ts +42 -1
- package/lib/transformers/features/miscellaneous/ApplicationTransformer.js +4 -0
- package/lib/transformers/features/miscellaneous/ApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/stringifiers/StringifyTransformer.js +12 -1
- package/lib/transformers/features/stringifiers/StringifyTransformer.js.map +1 -1
- package/package.json +3 -2
- package/src/executable/internal/TypiaSetupWizard.ts +182 -175
- package/src/executable/typia.ts +6 -4
- package/src/factories/MetadataCollection.ts +122 -122
- package/src/factories/MetadataFactory.ts +47 -46
- package/src/factories/MetadataTagFactory.ts +351 -347
- package/src/factories/internal/{MetadataHelper.ts → metadata/MetadataHelper.ts} +12 -12
- package/src/factories/internal/{emplace_metadata_object.ts → metadata/emplace_metadata_object.ts} +140 -140
- package/src/factories/internal/{explore_metadata.ts → metadata/explore_metadata.ts} +92 -91
- package/src/factories/internal/{iterate_metadata.ts → metadata/iterate_metadata.ts} +80 -80
- package/src/factories/internal/{iterate_metadata_array.ts → metadata/iterate_metadata_array.ts} +29 -29
- package/src/factories/internal/{iterate_metadata_atomic.ts → metadata/iterate_metadata_atomic.ts} +59 -59
- package/src/factories/internal/{iterate_metadata_coalesce.ts → metadata/iterate_metadata_coalesce.ts} +33 -33
- package/src/factories/internal/{iterate_metadata_constant.ts → metadata/iterate_metadata_constant.ts} +58 -58
- package/src/factories/internal/{iterate_metadata_map.ts → metadata/iterate_metadata_map.ts} +41 -41
- package/src/factories/internal/{iterate_metadata_native.ts → metadata/iterate_metadata_native.ts} +227 -227
- package/src/factories/internal/{iterate_metadata_object.ts → metadata/iterate_metadata_object.ts} +48 -48
- package/src/factories/internal/{iterate_metadata_resolve.ts → metadata/iterate_metadata_resolve.ts} +27 -27
- package/src/factories/internal/{iterate_metadata_set.ts → metadata/iterate_metadata_set.ts} +33 -33
- package/src/factories/internal/{iterate_metadata_template.ts → metadata/iterate_metadata_template.ts} +38 -38
- package/src/factories/internal/{iterate_metadata_tuple.ts → metadata/iterate_metadata_tuple.ts} +45 -45
- package/src/factories/internal/{iterate_metadata_union.ts → metadata/iterate_metadata_union.ts} +59 -59
- package/src/functional/$number.ts +12 -19
- package/src/metadata/IMetadataTag.ts +122 -122
- package/src/metadata/Metadata.ts +477 -477
- package/src/module.ts +1535 -1535
- package/src/programmers/AssertParseProgrammer.ts +55 -45
- package/src/programmers/AssertProgrammer.ts +445 -444
- package/src/programmers/AssertStringifyProgrammer.ts +65 -45
- package/src/programmers/CheckerProgrammer.ts +810 -804
- package/src/programmers/IsParseProgrammer.ts +61 -51
- package/src/programmers/IsProgrammer.ts +175 -172
- package/src/programmers/IsStringifyProgrammer.ts +69 -49
- package/src/programmers/StringifyProgrammer.ts +762 -756
- package/src/programmers/ValidateParseProgrammer.ts +59 -49
- package/src/programmers/ValidateProgrammer.ts +237 -236
- package/src/programmers/ValidateStringifyProgrammer.ts +80 -60
- package/src/programmers/helpers/OptionPredicator.ts +15 -11
- package/src/programmers/internal/application_default.ts +17 -17
- package/src/programmers/internal/application_object.ts +103 -103
- package/src/programmers/internal/application_schema.ts +228 -221
- package/src/programmers/internal/check_bigint.ts +85 -0
- package/src/programmers/internal/check_number.ts +175 -178
- package/src/schemas/IJsonSchema.ts +90 -92
- package/src/transformers/CallExpressionTransformer.ts +124 -124
- package/src/transformers/ITransformOptions.ts +47 -4
- package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +119 -114
- package/src/transformers/features/stringifiers/StringifyTransformer.ts +46 -36
- package/lib/factories/internal/MetadataHelper.js.map +0 -1
- package/lib/factories/internal/emplace_metadata_object.js.map +0 -1
- package/lib/factories/internal/explore_metadata.js.map +0 -1
- package/lib/factories/internal/iterate_metadata.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_array.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_atomic.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_coalesce.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_constant.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_map.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_native.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_object.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_resolve.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_set.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_template.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_tuple.js.map +0 -1
- package/lib/factories/internal/iterate_metadata_union.js.map +0 -1
- package/lib/transformers/features/miscellaneous/CreateInstanceTransformer.d.ts +0 -5
- package/lib/transformers/features/miscellaneous/CreateInstanceTransformer.js +0 -29
- package/lib/transformers/features/miscellaneous/CreateInstanceTransformer.js.map +0 -1
- package/src/transformers/features/miscellaneous/CreateInstanceTransformer.ts +0 -41
|
@@ -1,4 +1,45 @@
|
|
|
1
1
|
export interface ITransformOptions {
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Whether to validate finite number or not.
|
|
4
|
+
*
|
|
5
|
+
* If configured true, number typed values would be validated by Number.isNaN().
|
|
6
|
+
*
|
|
7
|
+
* However, whatever you configure, it would be ignored when marshaling or parsing.
|
|
8
|
+
*
|
|
9
|
+
* - when marshaling, always be true
|
|
10
|
+
* - assertStringify()
|
|
11
|
+
* - validateEncode()
|
|
12
|
+
* - when parsing, always be false
|
|
13
|
+
* - assertParse()
|
|
14
|
+
* - isDecode()
|
|
15
|
+
*
|
|
16
|
+
* @default false
|
|
17
|
+
*/
|
|
18
|
+
finite?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Whether to validate finite number or not.
|
|
21
|
+
*
|
|
22
|
+
* If configured true, number typed values would be validated by Number.isFinite().
|
|
23
|
+
*
|
|
24
|
+
* However, whatever you configure, it can be ignored in below case.
|
|
25
|
+
*
|
|
26
|
+
* - when `finite` option is true, this option would be ignored
|
|
27
|
+
* - when marshaling, always be true
|
|
28
|
+
* - assertStringify()
|
|
29
|
+
* - validateEncode()
|
|
30
|
+
* - when parsing, always be false
|
|
31
|
+
* - assertParse()
|
|
32
|
+
* - isDecode()
|
|
33
|
+
*
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
3
36
|
numeric?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Whether to validate functional type or not.
|
|
39
|
+
*
|
|
40
|
+
* However, whatever you configure, it becomes false when marshaling or parsing.
|
|
41
|
+
*
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
functional?: boolean;
|
|
4
45
|
}
|
|
@@ -39,6 +39,10 @@ var ApplicationTransformer;
|
|
|
39
39
|
return MetadataFactory_1.MetadataFactory.generate(checker, collection, type, {
|
|
40
40
|
resolve: true,
|
|
41
41
|
constant: true,
|
|
42
|
+
validate: function (meta) {
|
|
43
|
+
if (meta.atomics.find(function (str) { return str === "bigint"; }))
|
|
44
|
+
throw new Error("Error on typia.application(): does not allow bigint type.");
|
|
45
|
+
},
|
|
42
46
|
});
|
|
43
47
|
});
|
|
44
48
|
var app = ApplicationProgrammer_1.ApplicationProgrammer.generate(metadatas, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/miscellaneous/ApplicationTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AAKrE,oFAAmF;AAInF,IAAiB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"ApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/miscellaneous/ApplicationTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
@@ -16,7 +27,7 @@ var StringifyTransformer;
|
|
|
16
27
|
: project.checker.getTypeAtLocation(expression.arguments[0]);
|
|
17
28
|
if (type.isTypeParameter())
|
|
18
29
|
throw new Error("Error on typia.stringify(): non-specified generic argument.");
|
|
19
|
-
return typescript_1.default.factory.createCallExpression(StringifyProgrammer_1.StringifyProgrammer.generate(project, modulo)(type), undefined, [expression.arguments[0]]);
|
|
30
|
+
return typescript_1.default.factory.createCallExpression(StringifyProgrammer_1.StringifyProgrammer.generate(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: true }) }), modulo)(type), undefined, [expression.arguments[0]]);
|
|
20
31
|
}
|
|
21
32
|
StringifyTransformer.transform = transform;
|
|
22
33
|
})(StringifyTransformer = exports.StringifyTransformer || (exports.StringifyTransformer = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringifyTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/StringifyTransformer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StringifyTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/stringifiers/StringifyTransformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,gFAA+E;AAI/E,IAAiB,oBAAoB,CAkCpC;AAlCD,WAAiB,oBAAoB;IACjC,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;QAE7B,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACjC,MAAM,IAAI,KAAK,+CAA8B,CAAC;QAElD,IAAM,IAAI,GACN,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAC/B,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAC9B;YACH,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,+DAAgC,CAAC;QAEpD,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAClC,yCAAmB,CAAC,QAAQ,uBAEjB,OAAO,KACV,OAAO,wBACA,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,IAAI,QAGrB,MAAM,CACT,CAAC,IAAI,CAAC,EACP,SAAS,EACT,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAC7B,CAAC;IACN,CAAC;IAhCe,8BAAS,YAgCxB,CAAA;AACL,CAAC,EAlCgB,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAkCpC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typia",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.16",
|
|
4
4
|
"description": "Runtime type checkers and 5x faster JSON.stringify() function",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
"typia": "./lib/executable/typia.js"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
|
-
"benchmark": "npm run build:
|
|
11
|
+
"benchmark": "npm run build:benchmark && node measure/benchmark",
|
|
12
12
|
"build": "rimraf lib && ttsc --removeComments --declaration false && ttsc --emitDeclarationOnly",
|
|
13
13
|
"build:test": "rimraf bin && ttsc -p tsconfig.test.json",
|
|
14
|
+
"build:benchmark": "rimraf measure && ttsc -p tsconfig.benchmark.json",
|
|
14
15
|
"build:test:prettier": "npm run build:test && prettier --write ./bin/**/*.js",
|
|
15
16
|
"dev": "rimraf lib && ttsc --watch",
|
|
16
17
|
"dev:test": "rimraf bin && ttsc -p tsconfig.test.json --watch",
|
|
@@ -1,175 +1,182 @@
|
|
|
1
|
-
import cp from "child_process";
|
|
2
|
-
import type Comment from "comment-json";
|
|
3
|
-
import fs from "fs";
|
|
4
|
-
|
|
5
|
-
export namespace TypiaSetupWizard {
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
//
|
|
13
|
-
await
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
1
|
+
import cp from "child_process";
|
|
2
|
+
import type Comment from "comment-json";
|
|
3
|
+
import fs from "fs";
|
|
4
|
+
|
|
5
|
+
export namespace TypiaSetupWizard {
|
|
6
|
+
export interface IArguments {
|
|
7
|
+
manager: "npm" | "pnpm" | "yarn";
|
|
8
|
+
project: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export async function ttypescript(args: IArguments): Promise<void> {
|
|
12
|
+
// INSTALL
|
|
13
|
+
const pack: any = await prepare(args);
|
|
14
|
+
add(args.manager)(pack)("ttypescript", true);
|
|
15
|
+
add(args.manager)(pack)("ts-node", true);
|
|
16
|
+
|
|
17
|
+
// TSCONFIG.JSON
|
|
18
|
+
await configure(args)(pack);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export async function tsPatch(args: IArguments): Promise<void> {
|
|
22
|
+
// INSTALL
|
|
23
|
+
add(args.manager)(await prepare(args))("ts-patch", true);
|
|
24
|
+
execute("npx ts-patch install");
|
|
25
|
+
|
|
26
|
+
// PACKAGE.JSON
|
|
27
|
+
const pack: any = JSON.parse(
|
|
28
|
+
await fs.promises.readFile("package.json", "utf8"),
|
|
29
|
+
);
|
|
30
|
+
if (!pack.scripts || typeof pack.scripts !== "object")
|
|
31
|
+
pack.scripts = {};
|
|
32
|
+
if (typeof pack.scripts.prepare === "string") {
|
|
33
|
+
if (pack.scripts.prepare.indexOf("ts-patch install") === -1)
|
|
34
|
+
pack.scripts.prepare =
|
|
35
|
+
"ts-patch install && " + pack.scripts.prepare;
|
|
36
|
+
} else pack.scripts.prepare = "ts-patch install";
|
|
37
|
+
|
|
38
|
+
await fs.promises.writeFile(
|
|
39
|
+
"package.json",
|
|
40
|
+
JSON.stringify(pack, null, 2),
|
|
41
|
+
"utf8",
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
// TSCONFIG.JSON
|
|
45
|
+
await configure(args)(pack);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async function prepare(args: IArguments): Promise<any> {
|
|
49
|
+
if (fs.existsSync("package.json") === false)
|
|
50
|
+
halt(() => {})("make package.json file or move to it.");
|
|
51
|
+
|
|
52
|
+
const pack: any = JSON.parse(
|
|
53
|
+
await fs.promises.readFile("package.json", "utf8"),
|
|
54
|
+
);
|
|
55
|
+
const wizard = add(args.manager)(pack);
|
|
56
|
+
wizard("typia", false);
|
|
57
|
+
wizard("typescript", true);
|
|
58
|
+
return pack;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const configure =
|
|
62
|
+
(args: IArguments) =>
|
|
63
|
+
async (pack: any): Promise<void> => {
|
|
64
|
+
// VALIDATE PRERATATION
|
|
65
|
+
if (fs.existsSync(args.manager) === false) {
|
|
66
|
+
if (args.project === "tsconfig.json") execute("npx tsc --init");
|
|
67
|
+
if (fs.existsSync(args.project) === false)
|
|
68
|
+
halt(() => {})(`${args.project} file does not exist.`);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// INSTALL COMMENT-JSON FOR A WHILE
|
|
72
|
+
const temporary: boolean = !fs.existsSync(
|
|
73
|
+
"node_modules/comment-json",
|
|
74
|
+
);
|
|
75
|
+
if (temporary === true)
|
|
76
|
+
add(args.manager)(pack)("comment-json", true);
|
|
77
|
+
|
|
78
|
+
const halter: (msg: string) => never = halt(() => {
|
|
79
|
+
if (temporary === true)
|
|
80
|
+
remove(args.manager)("comment-json", true);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
// READ TSCONFIG FILE
|
|
84
|
+
const Comment: typeof import("comment-json") = await import(
|
|
85
|
+
process.cwd() + "/node_modules/comment-json"
|
|
86
|
+
);
|
|
87
|
+
const config: Comment.CommentObject = Comment.parse(
|
|
88
|
+
await fs.promises.readFile(args.project, "utf8"),
|
|
89
|
+
) as Comment.CommentObject;
|
|
90
|
+
const options = config.compilerOptions as
|
|
91
|
+
| Comment.CommentObject
|
|
92
|
+
| undefined;
|
|
93
|
+
if (options === undefined)
|
|
94
|
+
halter(
|
|
95
|
+
`${args.project} file does not have "compilerOptions" property.`,
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
// PREPARE PLUGINS
|
|
99
|
+
const plugins: Comment.CommentArray<Comment.CommentObject> =
|
|
100
|
+
(() => {
|
|
101
|
+
const plugins = options.plugins as
|
|
102
|
+
| Comment.CommentArray<Comment.CommentObject>
|
|
103
|
+
| undefined;
|
|
104
|
+
if (plugins === undefined)
|
|
105
|
+
return (options.plugins = [] as any);
|
|
106
|
+
else if (!Array.isArray(plugins))
|
|
107
|
+
halter(
|
|
108
|
+
`"plugins" property of ${args.project} must be array type.`,
|
|
109
|
+
);
|
|
110
|
+
return plugins;
|
|
111
|
+
})();
|
|
112
|
+
|
|
113
|
+
// CHECK WHETHER CONFIGURED
|
|
114
|
+
const strict: boolean = options.strict === true;
|
|
115
|
+
const oldbie: Comment.CommentObject | undefined = plugins.find(
|
|
116
|
+
(p) =>
|
|
117
|
+
typeof p === "object" &&
|
|
118
|
+
p !== null &&
|
|
119
|
+
p.transform === "typia/lib/transform",
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
if (strict === true && oldbie !== undefined) {
|
|
123
|
+
console.log(
|
|
124
|
+
`you've been already configured the ${args.project} file.`,
|
|
125
|
+
);
|
|
126
|
+
} else {
|
|
127
|
+
// DO CONFIGURE
|
|
128
|
+
options.strict = true;
|
|
129
|
+
if (oldbie === undefined)
|
|
130
|
+
plugins.push(
|
|
131
|
+
Comment.parse(`
|
|
132
|
+
{
|
|
133
|
+
"transform": "typia/lib/transform"
|
|
134
|
+
}`) as Comment.CommentObject,
|
|
135
|
+
);
|
|
136
|
+
await fs.promises.writeFile(
|
|
137
|
+
args.project,
|
|
138
|
+
Comment.stringify(config, null, 2),
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
if (temporary === true) remove(args.manager)("comment-json", false);
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const add =
|
|
146
|
+
(manager: string) =>
|
|
147
|
+
(pack: any) =>
|
|
148
|
+
(modulo: string, devOnly: boolean): void => {
|
|
149
|
+
const exists: boolean =
|
|
150
|
+
(devOnly === false
|
|
151
|
+
? !!pack.dependencies && !!pack.dependencies[modulo]
|
|
152
|
+
: !!pack.devDependencies && !!pack.devDependencies[modulo]) &&
|
|
153
|
+
fs.existsSync("node_modules/" + modulo);
|
|
154
|
+
const middle: string =
|
|
155
|
+
manager === "yarn"
|
|
156
|
+
? `add${devOnly ? " -D" : ""}`
|
|
157
|
+
: `install ${devOnly ? "--save-dev" : "--save"}`;
|
|
158
|
+
if (exists === false) execute(`${manager} ${middle} ${modulo}`);
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
const remove =
|
|
162
|
+
(manager: string) =>
|
|
163
|
+
(modulo: string, devOnly: boolean): void => {
|
|
164
|
+
const middle: string =
|
|
165
|
+
manager === "yarn"
|
|
166
|
+
? `remove${devOnly ? " -D" : ""}`
|
|
167
|
+
: `uninstall ${devOnly ? "--save-dev" : "--save"}`;
|
|
168
|
+
execute(`${manager} ${middle} ${modulo}`);
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
const halt =
|
|
172
|
+
(closer: () => any) =>
|
|
173
|
+
(desc: string): never => {
|
|
174
|
+
closer();
|
|
175
|
+
console.error(desc);
|
|
176
|
+
process.exit(-1);
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
function execute(command: string): void {
|
|
180
|
+
console.log(command);
|
|
181
|
+
cp.execSync(command, { stdio: "inherit" });
|
|
182
|
+
}
|
package/src/executable/typia.ts
CHANGED
|
@@ -7,11 +7,12 @@ const USAGE = `Wrong command has been detected. Use like below:
|
|
|
7
7
|
npx typia setup \\
|
|
8
8
|
--compiler (ttypescript|ts-patch) \\
|
|
9
9
|
--manager (npm|pnpm|yarn)
|
|
10
|
+
--project {tsconfig.json file path}
|
|
10
11
|
|
|
11
12
|
- npx typia setup
|
|
12
|
-
- npx typia setup --compiler ttypescript
|
|
13
13
|
- npx typia setup --compiler ts-patch
|
|
14
|
-
- npx typia setup --manager pnpm
|
|
14
|
+
- npx typia setup --manager pnpm
|
|
15
|
+
- npx typia setup --project tsconfig.test.json`;
|
|
15
16
|
|
|
16
17
|
function halt(desc: string): never {
|
|
17
18
|
console.error(desc);
|
|
@@ -24,6 +25,7 @@ async function setup(): Promise<void> {
|
|
|
24
25
|
);
|
|
25
26
|
const manager: string = options.manager ?? "npm";
|
|
26
27
|
const compiler: string = options.compiler ?? "ttypescript";
|
|
28
|
+
const project: string = options.project ?? "tsconfig.json";
|
|
27
29
|
|
|
28
30
|
if (
|
|
29
31
|
(compiler !== "ttypescript" && compiler !== "ts-patch") ||
|
|
@@ -31,8 +33,8 @@ async function setup(): Promise<void> {
|
|
|
31
33
|
)
|
|
32
34
|
halt(USAGE);
|
|
33
35
|
else if (compiler === "ttypescript")
|
|
34
|
-
await TypiaSetupWizard.ttypescript(manager);
|
|
35
|
-
else await TypiaSetupWizard.tsPatch(manager);
|
|
36
|
+
await TypiaSetupWizard.ttypescript({ manager, project });
|
|
37
|
+
else await TypiaSetupWizard.tsPatch({ manager, project });
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
async function main(): Promise<void> {
|