typia 3.7.5-dev.20230413 → 3.7.6
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 +35 -228
- package/lib/executable/TypiaSetupWizard.d.ts +1 -0
- package/lib/executable/TypiaSetupWizard.js +62 -30
- package/lib/executable/TypiaSetupWizard.js.map +1 -1
- package/lib/executable/setup/PackageManager.d.ts +1 -1
- package/lib/executable/typia.d.ts +1 -1
- package/lib/executable/typia.js +1 -1
- package/lib/executable/typia.js.map +1 -1
- package/lib/factories/IdentifierFactory.d.ts +1 -1
- package/lib/factories/IdentifierFactory.js +1 -1
- package/lib/factories/IdentifierFactory.js.map +1 -1
- package/lib/factories/TypiaFileFactory.js +9 -4
- package/lib/factories/TypiaFileFactory.js.map +1 -1
- package/lib/programmers/internal/check_string_tags.js +2 -2
- package/lib/programmers/internal/check_string_tags.js.map +1 -1
- package/lib/programmers/internal/check_template.js +1 -1
- package/lib/programmers/internal/check_template.js.map +1 -1
- package/package.json +11 -12
- package/src/CustomValidatorMap.ts +126 -126
- package/src/IRandomGenerator.ts +33 -33
- package/src/IValidation.ts +21 -21
- package/src/Primitive.ts +104 -104
- package/src/TypeGuardError.ts +36 -36
- package/src/executable/TypiaGenerateWizard.ts +85 -85
- package/src/executable/TypiaSetupWizard.ts +47 -14
- package/src/executable/setup/ArgumentParser.ts +45 -45
- package/src/executable/setup/CommandExecutor.ts +8 -8
- package/src/executable/setup/FileRetriever.ts +22 -22
- package/src/executable/setup/PackageManager.ts +1 -1
- package/src/executable/setup/PluginConfigurator.ts +59 -59
- package/src/executable/typia.ts +54 -53
- package/src/factories/CommentFactory.ts +10 -10
- package/src/factories/ExpressionFactory.ts +77 -77
- package/src/factories/IdentifierFactory.ts +81 -59
- package/src/factories/LiteralFactory.ts +44 -44
- package/src/factories/MetadataCollection.ts +122 -122
- package/src/factories/MetadataFactory.ts +51 -51
- package/src/factories/MetadataTagFactory.ts +302 -302
- package/src/factories/StatementFactory.ts +60 -60
- package/src/factories/TemplateFactory.ts +56 -56
- package/src/factories/TypeFactory.ts +129 -129
- package/src/factories/TypiaFileFactory.ts +12 -3
- package/src/factories/ValueFactory.ts +12 -12
- package/src/factories/internal/metadata/MetadataHelper.ts +12 -12
- package/src/factories/internal/metadata/emplace_metadata_object.ts +142 -142
- package/src/factories/internal/metadata/explore_metadata.ts +92 -92
- package/src/factories/internal/metadata/iterate_metadata.ts +80 -80
- package/src/factories/internal/metadata/iterate_metadata_array.ts +29 -29
- package/src/factories/internal/metadata/iterate_metadata_atomic.ts +59 -59
- package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
- package/src/factories/internal/metadata/iterate_metadata_constant.ts +58 -58
- package/src/factories/internal/metadata/iterate_metadata_map.ts +41 -41
- package/src/factories/internal/metadata/iterate_metadata_native.ts +222 -222
- package/src/factories/internal/metadata/iterate_metadata_object.ts +48 -48
- package/src/factories/internal/metadata/iterate_metadata_resolve.ts +27 -27
- package/src/factories/internal/metadata/iterate_metadata_set.ts +33 -33
- package/src/factories/internal/metadata/iterate_metadata_template.ts +38 -38
- package/src/factories/internal/metadata/iterate_metadata_tuple.ts +45 -45
- package/src/factories/internal/metadata/iterate_metadata_union.ts +59 -59
- package/src/functional/$any.ts +3 -3
- package/src/functional/$dictionary.ts +20 -20
- package/src/functional/$every.ts +11 -11
- package/src/functional/$guard.ts +35 -35
- package/src/functional/$is_between.ts +7 -7
- package/src/functional/$is_custom.ts +14 -14
- package/src/functional/$is_date.ts +4 -4
- package/src/functional/$is_datetime.ts +3 -3
- package/src/functional/$is_email.ts +5 -5
- package/src/functional/$is_ipv4.ts +5 -5
- package/src/functional/$is_ipv6.ts +5 -5
- package/src/functional/$is_url.ts +5 -5
- package/src/functional/$is_uuid.ts +5 -5
- package/src/functional/$join.ts +50 -50
- package/src/functional/$number.ts +12 -12
- package/src/functional/$report.ts +15 -15
- package/src/functional/$rest.ts +3 -3
- package/src/functional/$string.ts +37 -37
- package/src/functional/$tail.ts +6 -6
- package/src/functional/Namespace.ts +127 -127
- package/src/index.ts +4 -4
- package/src/metadata/ICommentTag.ts +4 -4
- package/src/metadata/IJsDocTagInfo.ts +10 -10
- package/src/metadata/IMetadata.ts +25 -25
- package/src/metadata/IMetadataApplication.ts +7 -7
- package/src/metadata/IMetadataConstant.ts +16 -16
- package/src/metadata/IMetadataEntry.ts +6 -6
- package/src/metadata/IMetadataObject.ts +29 -29
- package/src/metadata/IMetadataProperty.ts +11 -11
- package/src/metadata/IMetadataTag.ts +105 -105
- package/src/metadata/Metadata.ts +534 -534
- package/src/metadata/MetadataConstant.ts +3 -3
- package/src/metadata/MetadataObject.ts +131 -131
- package/src/metadata/MetadataProperty.ts +64 -64
- package/src/module.ts +2043 -2043
- package/src/programmers/ApplicationProgrammer.ts +55 -55
- package/src/programmers/AssertCloneProgrammer.ts +70 -70
- package/src/programmers/AssertParseProgrammer.ts +65 -65
- package/src/programmers/AssertProgrammer.ts +284 -284
- package/src/programmers/AssertPruneProgrammer.ts +67 -67
- package/src/programmers/AssertStringifyProgrammer.ts +71 -71
- package/src/programmers/CheckerProgrammer.ts +922 -922
- package/src/programmers/CloneProgrammer.ts +388 -388
- package/src/programmers/FeatureProgrammer.ts +512 -512
- package/src/programmers/IsCloneProgrammer.ts +80 -80
- package/src/programmers/IsParseProgrammer.ts +74 -74
- package/src/programmers/IsProgrammer.ts +206 -206
- package/src/programmers/IsPruneProgrammer.ts +75 -75
- package/src/programmers/IsStringifyProgrammer.ts +81 -81
- package/src/programmers/LiteralsProgrammer.ts +65 -65
- package/src/programmers/PruneProgrammer.ts +343 -343
- package/src/programmers/RandomProgrammer.ts +413 -413
- package/src/programmers/StringifyProgrammer.ts +801 -801
- package/src/programmers/ValidateCloneProgrammer.ts +90 -90
- package/src/programmers/ValidateParseProgrammer.ts +69 -69
- package/src/programmers/ValidateProgrammer.ts +317 -317
- package/src/programmers/ValidatePruneProgrammer.ts +83 -83
- package/src/programmers/ValidateStringifyProgrammer.ts +89 -89
- package/src/programmers/helpers/AtomicPredicator.ts +31 -31
- package/src/programmers/helpers/CloneJoiner.ts +134 -134
- package/src/programmers/helpers/FunctionImporeter.ts +55 -55
- package/src/programmers/helpers/ICheckEntry.ts +12 -12
- package/src/programmers/helpers/IExpressionEntry.ts +12 -12
- package/src/programmers/helpers/OptionPredicator.ts +19 -19
- package/src/programmers/helpers/PruneJoiner.ts +52 -52
- package/src/programmers/helpers/RandomJoiner.ts +161 -161
- package/src/programmers/helpers/RandomRanger.ts +216 -216
- package/src/programmers/helpers/StringifyJoinder.ts +114 -114
- package/src/programmers/helpers/StringifyPredicator.ts +18 -18
- package/src/programmers/helpers/UnionExplorer.ts +281 -281
- package/src/programmers/helpers/UnionPredicator.ts +81 -81
- package/src/programmers/internal/application_array.ts +37 -37
- package/src/programmers/internal/application_boolean.ts +17 -17
- package/src/programmers/internal/application_constant.ts +29 -29
- package/src/programmers/internal/application_default.ts +17 -17
- package/src/programmers/internal/application_default_string.ts +32 -32
- package/src/programmers/internal/application_native.ts +32 -32
- package/src/programmers/internal/application_number.ts +73 -73
- package/src/programmers/internal/application_object.ts +153 -153
- package/src/programmers/internal/application_schema.ts +184 -184
- package/src/programmers/internal/application_string.ts +45 -45
- package/src/programmers/internal/application_templates.ts +27 -27
- package/src/programmers/internal/application_tuple.ts +29 -29
- package/src/programmers/internal/check_array.ts +30 -30
- package/src/programmers/internal/check_array_length.ts +35 -35
- package/src/programmers/internal/check_bigint.ts +82 -82
- package/src/programmers/internal/check_custom.ts +33 -33
- package/src/programmers/internal/check_dynamic_properties.ts +197 -197
- package/src/programmers/internal/check_everything.ts +28 -28
- package/src/programmers/internal/check_native.ts +21 -21
- package/src/programmers/internal/check_number.ts +177 -177
- package/src/programmers/internal/check_object.ts +55 -55
- package/src/programmers/internal/check_string.ts +25 -25
- package/src/programmers/internal/check_string_tags.ts +9 -15
- package/src/programmers/internal/check_template.ts +6 -9
- package/src/programmers/internal/check_union_array_like.ts +272 -272
- package/src/programmers/internal/check_union_tuple.ts +35 -35
- package/src/programmers/internal/decode_union_object.ts +73 -73
- package/src/programmers/internal/feature_object_entries.ts +63 -63
- package/src/programmers/internal/get_comment_tags.ts +23 -23
- package/src/programmers/internal/metadata_to_pattern.ts +34 -34
- package/src/programmers/internal/prune_object_properties.ts +60 -60
- package/src/programmers/internal/random_custom.ts +30 -30
- package/src/programmers/internal/stringify_dynamic_properties.ts +168 -168
- package/src/programmers/internal/stringify_native.ts +8 -8
- package/src/programmers/internal/stringify_regular_properties.ts +84 -84
- package/src/programmers/internal/template_to_pattern.ts +15 -15
- package/src/schemas/IJsonApplication.ts +9 -9
- package/src/schemas/IJsonComponents.ts +26 -26
- package/src/schemas/IJsonSchema.ts +121 -121
- package/src/transform.ts +21 -21
- package/src/transformers/CallExpressionTransformer.ts +174 -174
- package/src/transformers/ExpressionWithArgumentTransformer.ts +66 -66
- package/src/transformers/FileTransformer.ts +49 -49
- package/src/transformers/IProject.ts +11 -11
- package/src/transformers/ITransformOptions.ts +62 -62
- package/src/transformers/ImportTransformer.ts +66 -66
- package/src/transformers/NodeTransformer.ts +19 -19
- package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +119 -119
- package/src/transformers/features/miscellaneous/AssertCloneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/AssertPruneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/CloneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/CreateAssertCloneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/CreateAssertPruneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/CreateCloneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/CreateIsCloneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/CreateIsPruneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/CreatePruneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/CreateRandomTransformer.ts +41 -41
- package/src/transformers/features/miscellaneous/CreateValidateCloneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/CreateValidatePruneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/IsCloneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/IsPruneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/LiteralsTransformer.ts +30 -30
- package/src/transformers/features/miscellaneous/MetadataTransformer.ts +54 -54
- package/src/transformers/features/miscellaneous/PruneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/RandomTransformer.ts +46 -46
- package/src/transformers/features/miscellaneous/ValidateCloneTransformer.ts +9 -9
- package/src/transformers/features/miscellaneous/ValidatePruneTransformer.ts +9 -9
- package/src/transformers/features/parsers/AssertParseTransformer.ts +9 -9
- package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +9 -9
- package/src/transformers/features/parsers/CreateIsParseTransformer.ts +9 -9
- package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +9 -9
- package/src/transformers/features/parsers/IsParseTransformer.ts +9 -9
- package/src/transformers/features/parsers/ValidateParseTransformer.ts +9 -9
- package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +10 -10
- package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +9 -9
- package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +9 -9
- package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +9 -9
- package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +11 -11
- package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +9 -9
- package/src/transformers/features/stringifiers/StringifyTransformer.ts +9 -9
- package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +10 -10
- package/src/transformers/features/validators/AssertTransformer.ts +11 -11
- package/src/transformers/features/validators/CreateAssertTransformer.ts +12 -12
- package/src/transformers/features/validators/CreateIsTransformer.ts +10 -10
- package/src/transformers/features/validators/CreateValidateTransformer.ts +12 -12
- package/src/transformers/features/validators/IsTransformer.ts +10 -10
- package/src/transformers/features/validators/ValidateTransformer.ts +11 -11
- package/src/transformers/internal/GenericTransformer.ts +99 -99
- package/src/typings/Atomic.ts +17 -17
- package/src/typings/ClassProperties.ts +5 -5
- package/src/typings/Customizable.ts +5 -5
- package/src/typings/OmitNever.ts +3 -3
- package/src/typings/SpecialFields.ts +3 -3
- package/src/typings/Writable.ts +11 -11
- package/src/utils/ArrayUtil.ts +49 -49
- package/src/utils/Escaper.ts +50 -50
- package/src/utils/MapUtil.ts +14 -14
- package/src/utils/PatternUtil.ts +30 -30
- package/src/utils/RandomGenerator.ts +96 -96
- package/src/utils/Singleton.ts +17 -17
package/README.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# Typia
|
|
2
|
+

|
|
3
|
+
|
|
2
4
|
[](https://github.com/samchon/typia/blob/master/LICENSE)
|
|
3
5
|
[](https://www.npmjs.com/package/typia)
|
|
4
6
|
[](https://www.npmjs.com/package/typia)
|
|
5
7
|
[](https://github.com/samchon/typia/actions?query=workflow%3Abuild)
|
|
6
|
-
[](https://
|
|
8
|
+
[](https://typia.io/docs/)
|
|
7
9
|
|
|
8
10
|
```typescript
|
|
9
11
|
// RUNTIME VALIDATORS
|
|
@@ -21,247 +23,52 @@ export function assertStringify<T>(input: T): string; // safe and faster
|
|
|
21
23
|
|
|
22
24
|
// MISC
|
|
23
25
|
export function random<T>(g?: Partial<IRandomGenerator>): Primitive<T>;
|
|
24
|
-
export function literals<T extends Atomic.Type>(): T[];
|
|
25
|
-
export function clone<T>(input: T): Primitive<T>; // deep clone
|
|
26
|
-
export function prune<T extends object>(input: T): void; // erase extra props
|
|
27
|
-
// +) isClone, assertClone, validateClone
|
|
28
|
-
// +) isPrune, assertPrune, validatePrune
|
|
29
26
|
```
|
|
30
27
|
|
|
31
|
-
|
|
28
|
+
Typia is a transformer library supporting below features:
|
|
32
29
|
|
|
33
30
|
- Super-fast Runtime Validators
|
|
34
31
|
- Safe JSON parse and fast stringify functions
|
|
35
32
|
- JSON schema generator
|
|
36
33
|
- Random data generator
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
> Measured on [Intel i5-1135g7, Surface Pro 8](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz#is)
|
|
45
|
-
|
|
35
|
+
> **Note**
|
|
36
|
+
>
|
|
37
|
+
> - **Only one line** required, with pure TypeScript type
|
|
38
|
+
> - Runtime validator is **20,000x faster** than `class-validator`
|
|
39
|
+
> - JSON serialization is **200x faster** than `class-transformer`
|
|
46
40
|
|
|
47
41
|
|
|
48
42
|
|
|
49
|
-
## Sponsors
|
|
43
|
+
## Sponsors
|
|
50
44
|
Thanks for your support.
|
|
51
45
|
|
|
52
46
|
Your donation would encourage `typia` development.
|
|
53
47
|
|
|
54
48
|
[](https://opencollective.com/typia)
|
|
55
49
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
# INSTALL TYPIA
|
|
82
|
-
npm install --save typia
|
|
83
|
-
npm install --save-dev typescript
|
|
84
|
-
|
|
85
|
-
# GENERATE TRANSFORMED TYPESCRIPT CODES
|
|
86
|
-
npx typia generate \
|
|
87
|
-
--input src/templates \
|
|
88
|
-
--output src/generated \
|
|
89
|
-
--project tsconfig.json
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
For frontend projects.
|
|
93
|
-
|
|
94
|
-
If you're using non-standard TypeScript compiler, you can't use [transform mode](#transformation).
|
|
95
|
-
|
|
96
|
-
- Non-standard TypeScript compilers:
|
|
97
|
-
- [swc](https://swc.rs/) in Next.JS
|
|
98
|
-
- [esbuild](https://esbuild.github.io/) in Vite
|
|
99
|
-
- [babel](https://babeljs.io/) in Create-React-App
|
|
100
|
-
|
|
101
|
-
Instead, you should utilize the generation mode.
|
|
102
|
-
|
|
103
|
-
Install `typia` through `npm install` command and run `typia generate` command. Then, generator of `typia` reads your TypeScript code of `--input`, and writes transformed TypeScript code into the `--output` directory, like below.
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
//--------
|
|
107
|
-
// src/templates/check.ts
|
|
108
|
-
//--------
|
|
109
|
-
import typia from "typia";
|
|
110
|
-
export const check = typia.createIs<string | null>();
|
|
111
|
-
|
|
112
|
-
//--------
|
|
113
|
-
// src/generated/check.ts
|
|
114
|
-
//--------
|
|
115
|
-
import typia from "typia";
|
|
116
|
-
export const check =
|
|
117
|
-
(input: unknown): input is string | null
|
|
118
|
-
=> "string" === typeof input || null === input;
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
## Features
|
|
125
|
-
[](https://github.com/samchon/typia/wiki)
|
|
126
|
-
|
|
127
|
-
In here README documents, only summarized informations are provided.
|
|
128
|
-
|
|
129
|
-
For more details, refer to the [Guide Documents (wiki)](https://github.com/samchon/typia/wiki).
|
|
130
|
-
|
|
131
|
-
> - **Runtime Validators**
|
|
132
|
-
> - [powerful validator](https://github.com/samchon/typia/wiki/Runtime-Validators#powerful-validator)
|
|
133
|
-
> - [`is()` function](https://github.com/samchon/typia/wiki/Runtime-Validators#is-function)
|
|
134
|
-
> - [`assert()` function](https://github.com/samchon/typia/wiki/Runtime-Validators#assert-function)
|
|
135
|
-
> - [`validate()` function](https://github.com/samchon/typia/wiki/Runtime-Validators#validate-function)
|
|
136
|
-
> - [strict validators](https://github.com/samchon/typia/wiki/Runtime-Validators#strict-validators)
|
|
137
|
-
> - [factory functions](https://github.com/samchon/typia/wiki/Runtime-Validators#factory-functions)
|
|
138
|
-
> - [comment tags](https://github.com/samchon/typia/wiki/Runtime-Validators#comment-tags)
|
|
139
|
-
> - [custom validators](https://github.com/samchon/typia/wiki/Runtime-Validators#custom-validators)
|
|
140
|
-
> - **Enhanced JSON**
|
|
141
|
-
> - [`stringify()` functions](https://github.com/samchon/typia/wiki/Enhanced-JSON#stringify-functions)
|
|
142
|
-
> - [`parse()` functions](https://github.com/samchon/typia/wiki/Enhanced-JSON#parse-functions)
|
|
143
|
-
> - [JSON schema](https://github.com/samchon/typia/wiki/Enhanced-JSON#json-schema)
|
|
144
|
-
> - [comment tags](https://github.com/samchon/typia/wiki/Enhanced-JSON#comment-tags)
|
|
145
|
-
> - **Random Generator**
|
|
146
|
-
> - [`random()` function](https://github.com/samchon/typia/wiki/Random-Generator#random-function)
|
|
147
|
-
> - [comment tags](https://github.com/samchon/typia/wiki/Random-Geneerator#comment-tags)
|
|
148
|
-
> - [customization](https://github.com/samchon/typia/wiki/Random-Generator#customization)
|
|
149
|
-
|
|
150
|
-
### Runtime Validators
|
|
151
|
-
```typescript
|
|
152
|
-
// ALLOW SUPERFLUOUS PROPERTIES
|
|
153
|
-
export function is<T>(input: unknown): input is T; // returns boolean
|
|
154
|
-
export function assert<T>(input: unknown): T; // throws `TypeGuardError`
|
|
155
|
-
export function validate<T>(input: unknown): IValidation<T>; // detailed
|
|
156
|
-
|
|
157
|
-
// DO NOT ALLOW SUPERFLUOUS PROPERTIES
|
|
158
|
-
export function equals<T>(input: unknown): input is T;
|
|
159
|
-
export function assertEquals<T>(input: unknown): T;
|
|
160
|
-
export function validateEquals<T>(input: unknown): IValidation<T>;
|
|
161
|
-
|
|
162
|
-
// REUSABLE FACTORY FUNCTIONS
|
|
163
|
-
export function createIs<T>(): (input: unknown) => input is T;
|
|
164
|
-
export function createAssert<T>(): (input: unknown) => T;
|
|
165
|
-
export function createValidate<T>(): (input: unknown) => IValidation<T>;
|
|
166
|
-
export function createEquals<T>(): (input: unknown) => input is T;
|
|
167
|
-
export function createAssertEquals<T>(): (input: unknown) => T;
|
|
168
|
-
export function createValidateEquals<T>(): (input: unknown) => IValidation<T>;
|
|
169
|
-
|
|
170
|
-
// YOU CAN ADD CUSTOM VALIDATORS
|
|
171
|
-
export const customValidators: CustomValidatorMap;
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
`typia` supports three type of validator functions:
|
|
175
|
-
|
|
176
|
-
- `is()`: returns `false` if not matched with the type `T`
|
|
177
|
-
- `assert()`: throws a [`TypeGuardError`](https://github.com/samchon/typia/blob/master/src/TypeGuardError.ts) when not matched
|
|
178
|
-
- `validate()`
|
|
179
|
-
- when matched, returns [`IValidation.ISuccess<T>`](https://github.com/samchon/typia/blob/master/src/IValidation.ts) with `value` property
|
|
180
|
-
- otherwise not matched, returns [`IValidation.IFailure`](https://github.com/samchon/typia/blob/master/src/IValidation.ts) with `errors` property
|
|
181
|
-
|
|
182
|
-
Also, if you want more strict validator functions that even do not allowing superfluous properties not written in the type `T`, you can use those functions instead; `equals()`, `assertEquals()`, `validateEquals()`. Otherwise you want to create resuable validator functions, you can utilize factory functions like `createIs()` instead.
|
|
183
|
-
|
|
184
|
-
When you want to add special validation logics, like limiting range of numeric values, you can do it through comment tags. Furthermore, you can add your custom validator logics. If you want to know about them, visit the Guide Documents:
|
|
185
|
-
|
|
186
|
-
- [Features > Runtime Validators > Comment Tags](https://github.com/samchon/typia/wiki/Runtime-Validators#comment-tags)
|
|
187
|
-
- [Features > Runtime Validators > Custom Validators](https://github.com/samchon/typia/wiki/Runtime-Validators#custom-validators).
|
|
188
|
-
|
|
189
|
-
### Enhanced JSON
|
|
190
|
-
```typescript
|
|
191
|
-
// JSON SCHEMA GENERATOR
|
|
192
|
-
export function application<
|
|
193
|
-
Types extends unknown[],
|
|
194
|
-
Purpose extends "swagger" | "ajv" = "swagger",
|
|
195
|
-
Prefix extends string = Purpose extends "swagger"
|
|
196
|
-
? "#/components/schemas"
|
|
197
|
-
: "components#/schemas",
|
|
198
|
-
>(): IJsonApplication;
|
|
199
|
-
|
|
200
|
-
// SAFE PARSER FUNCTIONS
|
|
201
|
-
export function isParse<T>(input: string): T | null;
|
|
202
|
-
export function assertParse<T>(input: string): T;
|
|
203
|
-
export function validateParse<T>(input: string): IValidation<T>;
|
|
204
|
-
|
|
205
|
-
// FASTER STRINGIFY FUNCTIONS
|
|
206
|
-
export function stringify<T>(input: T): string; // unsafe
|
|
207
|
-
export function isStringify<T>(input: T): string | null; // safe
|
|
208
|
-
export function assertStringify<T>(input: T): string;
|
|
209
|
-
export function validateStringify<T>(input: T): IValidation<string>;
|
|
210
|
-
|
|
211
|
-
// FACTORY FUNCTIONS
|
|
212
|
-
export function createAssertParse<T>(): (input: string) => T;
|
|
213
|
-
export function createAssertStringify<T>(): (input: T) => string;
|
|
214
|
-
// +) createIsParse, createValidateParse
|
|
215
|
-
// +) createStringify, createIsStringify, createValidateStringify
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
`typia` supports enhanced JSON functions.
|
|
219
|
-
|
|
220
|
-
- `application()`: generate JSON schema with only one line
|
|
221
|
-
- you can complement JSON schema contents through [comment tags](https://github.com/samchon/typia/wiki/Enhanced-JSON#comment-tags)
|
|
222
|
-
- `assertParse()`: parse JSON string safely with type validation
|
|
223
|
-
- `isStringify()`: maximum 160x faster JSON stringify fuction even type safe
|
|
224
|
-
|
|
225
|
-

|
|
226
|
-
|
|
227
|
-
> Measured on [AMD R7 6800HS](https://github.com/samchon/typia/tree/master/benchmark/results/AMD%20Ryzen%207%206800HS%20with%20Radeon%20Graphics)
|
|
228
|
-
|
|
229
|
-
### Miscellaneous
|
|
230
|
-
```typescript
|
|
231
|
-
export function random<T>(g?: Partial<IRandomGenerator>): Primitive<T>;
|
|
232
|
-
export function literals<T extends Atomic.Type>(): T[];
|
|
233
|
-
export function clone<T>(input: T): Primitive<T>; // deep copy
|
|
234
|
-
export function prune<T>(input: T): void; // remove superfluous properties
|
|
235
|
-
// +) isClone, assertClone, validateClone
|
|
236
|
-
// +) isPrune, assertPrune, validatePrune
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
When you need random data, just call only `typia.random<T>()` function.
|
|
240
|
-
|
|
241
|
-
If you need specific random data generation, utilize comment tags or do customize.
|
|
242
|
-
|
|
243
|
-
- [Features > Random Generator > comment tags](https://github.com/samchon/typia/wiki/Random-Generator#random-function)
|
|
244
|
-
- [Features > Random Generator > customization](https://github.com/samchon/typia/wiki/Random-Generator#customization)
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
## Appendix
|
|
249
|
-
### Nestia
|
|
250
|
-
[](https://github.com/samchon/nestia/blob/master/LICENSE)
|
|
251
|
-
[](https://www.npmjs.com/package/@nestia/core)
|
|
252
|
-
[](https://www.npmjs.com/package/@nestia/core)
|
|
253
|
-
[](https://github.com/samchon/nestia/actions?query=workflow%3Abuild)
|
|
254
|
-
[](https://github.com/samchon/nestia/wiki)
|
|
255
|
-
|
|
256
|
-
[Nestia](https://github.com/samchon/nestia) is a set of helper libraries for `NestJS`, supporting below features:
|
|
257
|
-
|
|
258
|
-
- `@nestia/core`: superfast decorators using `typia`
|
|
259
|
-
- **20,000x faster** validation
|
|
260
|
-
- **200x faster** JSON serialization
|
|
261
|
-
- `@nestia/sdk`: evolved **SDK** and **Swagger** generators
|
|
262
|
-
- SDK (Software Development Kit)
|
|
263
|
-
- interaction library for client developers
|
|
264
|
-
- almost same with [tRPC](https://github.com/trpc/trpc)
|
|
265
|
-
- `nestia`: just CLI (command line interface) tool
|
|
266
|
-
|
|
267
|
-

|
|
50
|
+
## Guide Documents
|
|
51
|
+
Check out the document in the [website](https://typia.io/docs/):
|
|
52
|
+
|
|
53
|
+
### 🙋🏻♂️ Home
|
|
54
|
+
- [Introduction](https://typia.io/docs/)
|
|
55
|
+
- [Setup](https://typia.io/docs/setup/)
|
|
56
|
+
|
|
57
|
+
### 📖 Features
|
|
58
|
+
- Runtime Validators
|
|
59
|
+
- [`is()` function](https://typia.io/docs/validators/is/)
|
|
60
|
+
- [`assert()` function](https://typia.io/docs/validators/assert/)
|
|
61
|
+
- [`validate()` function](https://typia.io/docs/validators/validate/)
|
|
62
|
+
- [Comment Tags](https://typia.io/docs/validators/comment-tags/)
|
|
63
|
+
- Enhanced JSON
|
|
64
|
+
- [`stringify()` functions](https://typia.io/docs/json/stringify/)
|
|
65
|
+
- [`parse()` functions](https://typia.io/docs/json/parse/)
|
|
66
|
+
- [JSON Schema](https://typia.io/docs/json/schema)
|
|
67
|
+
- [Random Generator](https://typia.io/docs/random/)
|
|
68
|
+
|
|
69
|
+
### 🔗 Appendix
|
|
70
|
+
- Utillization Cases
|
|
71
|
+
- [NestJS](https://typia.io/docs/utilization/nestjs/)
|
|
72
|
+
- [tRPC](https://typia.io/docs/utilization/trpc/)
|
|
73
|
+
- [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
|
|
74
|
+
- [⇲ `dev.to` Articles](https://dev.to/samchon/series/22474)
|
|
@@ -41,6 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.TypiaSetupWizard = void 0;
|
|
43
43
|
var fs_1 = __importDefault(require("fs"));
|
|
44
|
+
var path_1 = __importDefault(require("path"));
|
|
44
45
|
var ArgumentParser_1 = require("./setup/ArgumentParser");
|
|
45
46
|
var CommandExecutor_1 = require("./setup/CommandExecutor");
|
|
46
47
|
var PackageManager_1 = require("./setup/PackageManager");
|
|
@@ -64,28 +65,32 @@ var TypiaSetupWizard;
|
|
|
64
65
|
return [4, ArgumentParser_1.ArgumentParser.parse(pack)(inquiry)];
|
|
65
66
|
case 2:
|
|
66
67
|
args = _b.sent();
|
|
67
|
-
pack.install({ dev: true, modulo: "typescript" });
|
|
68
|
+
pack.install({ dev: true, modulo: "typescript", version: "4.9.5" });
|
|
68
69
|
(_a = args.project) !== null && _a !== void 0 ? _a : (args.project = (function () {
|
|
69
70
|
CommandExecutor_1.CommandExecutor.run("npx tsc --init");
|
|
70
71
|
return (args.project = "tsconfig.json");
|
|
71
72
|
})());
|
|
72
|
-
pack.install({ dev: true, modulo: "ts-node" });
|
|
73
|
-
pack.install({ dev: true, modulo: "
|
|
73
|
+
pack.install({ dev: true, modulo: "ts-node", version: "latest" });
|
|
74
|
+
pack.install({ dev: true, modulo: args.compiler, version: "latest" });
|
|
75
|
+
if (!(args.compiler === "ts-patch")) return [3, 4];
|
|
74
76
|
return [4, pack.save(function (data) {
|
|
75
77
|
var _a;
|
|
76
78
|
(_a = data.scripts) !== null && _a !== void 0 ? _a : (data.scripts = {});
|
|
77
79
|
if (typeof data.scripts.prepare === "string" &&
|
|
78
|
-
data.scripts.prepare.
|
|
79
|
-
data.scripts.prepare
|
|
80
|
-
|
|
80
|
+
data.scripts.prepare.length) {
|
|
81
|
+
if (data.scripts.prepare.indexOf("ts-patch install") === -1)
|
|
82
|
+
data.scripts.prepare =
|
|
83
|
+
"ts-patch install && " + data.scripts.prepare;
|
|
84
|
+
}
|
|
81
85
|
else
|
|
82
86
|
data.scripts.prepare = "ts-patch install";
|
|
83
87
|
})];
|
|
84
88
|
case 3:
|
|
85
89
|
_b.sent();
|
|
86
90
|
CommandExecutor_1.CommandExecutor.run("npm run prepare");
|
|
87
|
-
|
|
88
|
-
case 4:
|
|
91
|
+
_b.label = 4;
|
|
92
|
+
case 4: return [4, PluginConfigurator_1.PluginConfigurator.configure(args)];
|
|
93
|
+
case 5:
|
|
89
94
|
_b.sent();
|
|
90
95
|
return [2];
|
|
91
96
|
}
|
|
@@ -97,6 +102,7 @@ var TypiaSetupWizard;
|
|
|
97
102
|
var questioned, select, configure;
|
|
98
103
|
var _this = this;
|
|
99
104
|
return __generator(this, function (_a) {
|
|
105
|
+
command.option("--compiler [compiler]", "compiler type");
|
|
100
106
|
command.option("--manager [manager", "package manager");
|
|
101
107
|
command.option("--project [project]", "tsconfig.json file location");
|
|
102
108
|
questioned = { value: false };
|
|
@@ -152,38 +158,48 @@ var TypiaSetupWizard;
|
|
|
152
158
|
});
|
|
153
159
|
}); };
|
|
154
160
|
return [2, action(function (options) { return __awaiter(_this, void 0, void 0, function () {
|
|
155
|
-
var _a, _b, _c, _d;
|
|
156
|
-
var
|
|
157
|
-
return __generator(this, function (
|
|
158
|
-
switch (
|
|
161
|
+
var _a, _b, _c, _d, _e;
|
|
162
|
+
var _f, _g;
|
|
163
|
+
return __generator(this, function (_h) {
|
|
164
|
+
switch (_h.label) {
|
|
159
165
|
case 0:
|
|
160
|
-
if (!(
|
|
161
|
-
|
|
162
|
-
|
|
166
|
+
if (!(options.compiler === undefined)) return [3, 2];
|
|
167
|
+
console.log(COMPILER_DESCRIPTION);
|
|
168
|
+
_a = options;
|
|
169
|
+
return [4, select("compiler")("Compiler")(is_nest_cli(pack)
|
|
170
|
+
? ["ts-patch", "ttypescript"]
|
|
171
|
+
: ["ttypescript", "ts-patch"])];
|
|
163
172
|
case 1:
|
|
164
|
-
|
|
173
|
+
_a.compiler = _h.sent();
|
|
174
|
+
_h.label = 2;
|
|
175
|
+
case 2:
|
|
176
|
+
if (!((_f = options.manager) !== null && _f !== void 0)) return [3, 3];
|
|
177
|
+
_b = _f;
|
|
178
|
+
return [3, 5];
|
|
179
|
+
case 3:
|
|
180
|
+
_c = options;
|
|
165
181
|
return [4, select("manager")("Package Manager")([
|
|
166
182
|
"npm",
|
|
167
183
|
"pnpm",
|
|
168
184
|
"yarn",
|
|
169
185
|
])];
|
|
170
|
-
case 2:
|
|
171
|
-
_a = (_b.manager = _g.sent());
|
|
172
|
-
_g.label = 3;
|
|
173
|
-
case 3:
|
|
174
|
-
_a;
|
|
175
|
-
pack.manager = options.manager;
|
|
176
|
-
if (!((_f = options.project) !== null && _f !== void 0)) return [3, 4];
|
|
177
|
-
_c = _f;
|
|
178
|
-
return [3, 6];
|
|
179
186
|
case 4:
|
|
180
|
-
|
|
181
|
-
|
|
187
|
+
_b = (_c.manager = _h.sent());
|
|
188
|
+
_h.label = 5;
|
|
182
189
|
case 5:
|
|
183
|
-
|
|
184
|
-
|
|
190
|
+
_b;
|
|
191
|
+
pack.manager = options.manager;
|
|
192
|
+
if (!((_g = options.project) !== null && _g !== void 0)) return [3, 6];
|
|
193
|
+
_d = _g;
|
|
194
|
+
return [3, 8];
|
|
185
195
|
case 6:
|
|
186
|
-
|
|
196
|
+
_e = options;
|
|
197
|
+
return [4, configure()];
|
|
198
|
+
case 7:
|
|
199
|
+
_d = (_e.project = _h.sent());
|
|
200
|
+
_h.label = 8;
|
|
201
|
+
case 8:
|
|
202
|
+
_d;
|
|
187
203
|
if (questioned.value)
|
|
188
204
|
console.log("");
|
|
189
205
|
return [2, options];
|
|
@@ -192,5 +208,21 @@ var TypiaSetupWizard;
|
|
|
192
208
|
}); })];
|
|
193
209
|
});
|
|
194
210
|
}); };
|
|
211
|
+
function is_nest_cli(pack) {
|
|
212
|
+
var _a;
|
|
213
|
+
return ((typeof ((_a = pack.data.scripts) === null || _a === void 0 ? void 0 : _a.build) === "string" &&
|
|
214
|
+
pack.data.scripts.build.indexOf("nest build") !== -1) ||
|
|
215
|
+
fs_1.default.existsSync(path_1.default.join(pack.directory, "nest-cli.json")));
|
|
216
|
+
}
|
|
195
217
|
})(TypiaSetupWizard = exports.TypiaSetupWizard || (exports.TypiaSetupWizard = {}));
|
|
218
|
+
var COMPILER_DESCRIPTION = [
|
|
219
|
+
"About compiler, if you adapt \"ttypescript\", you should use \"ttsc\" instead.",
|
|
220
|
+
"",
|
|
221
|
+
"Otherwise, you choose \"ts-patch\", you can use the original \"tsc\" command.",
|
|
222
|
+
"However, the \"ts-patch\" hacks \"node_modules/typescript\" source code.",
|
|
223
|
+
"Also, whenever update \"typescript\", you've to run \"npm run prepare\" command.",
|
|
224
|
+
"",
|
|
225
|
+
"By the way, when using \"@nest/cli\", you must just choose \"ts-patch\".",
|
|
226
|
+
"",
|
|
227
|
+
].join("\n");
|
|
196
228
|
//# sourceMappingURL=TypiaSetupWizard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypiaSetupWizard.js","sourceRoot":"","sources":["../../src/executable/TypiaSetupWizard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAoB;
|
|
1
|
+
{"version":3,"file":"TypiaSetupWizard.js","sourceRoot":"","sources":["../../src/executable/TypiaSetupWizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
declare const USAGE = "Wrong command has been detected. Use like below:\n\n npx typia setup \\\n --manager (npm|pnpm|yarn) \\\n --project {tsconfig.json file path}\n\n - npx typia setup\n - npx typia setup --compiler ts-patch\n - npx typia setup --manager pnpm\n - npx typia setup --project tsconfig.test.json\n\n npx typia generate \n --input {directory} \\\n --output {directory}\n\n --npx typia generate --input src/templates --output src/functinoal\n";
|
|
2
|
+
declare const USAGE = "Wrong command has been detected. Use like below:\n\n npx typia setup \\\n --compiler (ttypescript|ts-patch) \\\n --manager (npm|pnpm|yarn) \\\n --project {tsconfig.json file path}\n\n - npx typia setup\n - npx typia setup --compiler ts-patch\n - npx typia setup --manager pnpm\n - npx typia setup --project tsconfig.test.json\n\n npx typia generate \n --input {directory} \\\n --output {directory}\n\n --npx typia generate --input src/templates --output src/functinoal\n";
|
|
3
3
|
declare function halt(desc: string): never;
|
|
4
4
|
declare function main(): Promise<void>;
|
package/lib/executable/typia.js
CHANGED
|
@@ -59,7 +59,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
59
59
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
|
-
var USAGE = "Wrong command has been detected. Use like below:\n\n npx typia setup \\\n --manager (npm|pnpm|yarn) \\\n --project {tsconfig.json file path}\n\n - npx typia setup\n - npx typia setup --compiler ts-patch\n - npx typia setup --manager pnpm\n - npx typia setup --project tsconfig.test.json\n\n npx typia generate \n --input {directory} \\\n --output {directory}\n\n --npx typia generate --input src/templates --output src/functinoal\n";
|
|
62
|
+
var USAGE = "Wrong command has been detected. Use like below:\n\n npx typia setup \\\n --compiler (ttypescript|ts-patch) \\\n --manager (npm|pnpm|yarn) \\\n --project {tsconfig.json file path}\n\n - npx typia setup\n - npx typia setup --compiler ts-patch\n - npx typia setup --manager pnpm\n - npx typia setup --project tsconfig.test.json\n\n npx typia generate \n --input {directory} \\\n --output {directory}\n\n --npx typia generate --input src/templates --output src/functinoal\n";
|
|
63
63
|
function halt(desc) {
|
|
64
64
|
console.error(desc);
|
|
65
65
|
process.exit(-1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typia.js","sourceRoot":"","sources":["../../src/executable/typia.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"typia.js","sourceRoot":"","sources":["../../src/executable/typia.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAM,KAAK,GAAG,wfAiBb,CAAC;AAEF,SAAS,IAAI,CAAC,IAAY;IACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,SAAe,IAAI;;;;;;;oBAEX,4EAAa,cAAc,QAAC;;oBAA5B,SAA4B,CAAC;oBAC7B,4EAAa,UAAU,QAAC;;oBAAxB,SAAwB,CAAC;oBACzB,4EAAa,WAAW,QAAC;;oBAAzB,SAAyB,CAAC;;;;oBAE1B,IAAI,CAAC,2DAAyD,CAAC,CAAC;;;oBAG9D,IAAI,GAAuB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBAC7C,CAAA,IAAI,KAAK,OAAO,CAAA,EAAhB,cAAgB;oBACa,4EAAa,oBAAoB,QAAC;;oBAAvD,gBAAgB,GAAK,CAAA,SAAkC,CAAA,iBAAvC;oBACxB,WAAM,gBAAgB,CAAC,KAAK,EAAE,EAAA;;oBAA9B,SAA8B,CAAC;;;yBACxB,CAAA,IAAI,KAAK,UAAU,CAAA,EAAnB,eAAmB;;;;oBAEtB,4EAAa,YAAY,QAAC;;oBAA1B,SAA0B,CAAC;;;;oBAE3B,IAAI,CACA,wEAAsE,CACzE,CAAC;;yBAE0B,4EAAa,uBAAuB,QAAC;;oBAA7D,mBAAmB,GAAK,CAAA,SAAqC,CAAA,oBAA1C;oBAC3B,WAAM,mBAAmB,CAAC,QAAQ,EAAE,EAAA;;oBAApC,SAAoC,CAAC;;;oBAClC,IAAI,CAAC,KAAK,CAAC,CAAC;;;;;;CACtB;AACD,IAAI,EAAE,CAAC,KAAK,CAAC,UAAC,GAAG;IACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"}
|
|
@@ -3,5 +3,5 @@ export declare namespace IdentifierFactory {
|
|
|
3
3
|
function generate(name: string): ts.Identifier | ts.StringLiteral;
|
|
4
4
|
function join(prefix: ts.Expression, name: string): ts.ElementAccessExpression | ts.PropertyAccessExpression;
|
|
5
5
|
function postfix(str: string): string;
|
|
6
|
-
function parameter(name: string | ts.BindingName, type?: ts.TypeNode, init?: ts.Expression | ts.PunctuationToken<ts.SyntaxKind.QuestionToken>):
|
|
6
|
+
function parameter(name: string | ts.BindingName, type?: ts.TypeNode, init?: ts.Expression | ts.PunctuationToken<ts.SyntaxKind.QuestionToken>): ts.ParameterDeclaration;
|
|
7
7
|
}
|
|
@@ -28,7 +28,7 @@ var IdentifierFactory;
|
|
|
28
28
|
}
|
|
29
29
|
IdentifierFactory.postfix = postfix;
|
|
30
30
|
function parameter(name, type, init) {
|
|
31
|
-
if (typescript_1.default.
|
|
31
|
+
if (typescript_1.default.version >= "4.8")
|
|
32
32
|
return typescript_1.default.factory.createParameterDeclaration(undefined, undefined, name, (init === null || init === void 0 ? void 0 : init.kind) === typescript_1.default.SyntaxKind.QuestionToken
|
|
33
33
|
? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken)
|
|
34
34
|
: undefined, type, init && init.kind !== typescript_1.default.SyntaxKind.QuestionToken
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentifierFactory.js","sourceRoot":"","sources":["../../src/factories/IdentifierFactory.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,4CAA2C;AAE3C,IAAiB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"IdentifierFactory.js","sourceRoot":"","sources":["../../src/factories/IdentifierFactory.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,4CAA2C;AAE3C,IAAiB,iBAAiB,CA4EjC;AA5ED,WAAiB,iBAAiB;IAC9B,SAAgB,QAAQ,CAAC,IAAY;QACjC,OAAO,iBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzB,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACnC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAJe,0BAAQ,WAIvB,CAAA;IAED,SAAgB,IAAI,CAAC,MAAqB,EAAE,IAAY;QACpD,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,oBAAE,CAAC,eAAe,CAAC,OAAO,CAAC;YAC9B,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,MAAM,EAAE,OAAO,CAAC;YAC3D,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IALe,sBAAI,OAKnB,CAAA;IAED,SAAgB,OAAO,CAAC,GAAW;QAC/B,OAAO,iBAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxB,CAAC,CAAC,aAAK,GAAG,OAAG;YACb,CAAC,CAAC,aAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAI,CAAC;IAC9D,CAAC;IAJe,yBAAO,UAItB,CAAA;IAED,SAAgB,SAAS,CACrB,IAA6B,EAC7B,IAAkB,EAClB,IAAuE;QAEvE,IAAI,oBAAE,CAAC,OAAO,IAAI,KAAK;YACnB,OAAO,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CACxC,SAAS,EACT,SAAS,EACT,IAAI,EACJ,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,oBAAE,CAAC,UAAU,CAAC,aAAa;gBACtC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBACrD,CAAC,CAAC,SAAS,EACf,IAAI,EACJ,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,aAAa;gBAC7C,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,SAAS,CAClB,CAAC;QAEN,OAAO,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CACxC,SAAS,EACT,SAAS,EACT,SAAS,EACT,IAAI,EACJ,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,oBAAE,CAAC,UAAU,CAAC,aAAa;YACtC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YACrD,CAAC,CAAC,SAAS,EACf,IAAI,EACJ,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,aAAa;YAC7C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,SAAS,CAClB,CAAC;IACN,CAAC;IAhCe,2BAAS,YAgCxB,CAAA;AAwBL,CAAC,EA5EgB,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QA4EjC"}
|
|
@@ -62,7 +62,7 @@ var TypiaFileFactory;
|
|
|
62
62
|
function generate(props) {
|
|
63
63
|
var _a, _b;
|
|
64
64
|
return __awaiter(this, void 0, void 0, function () {
|
|
65
|
-
var parent_1,
|
|
65
|
+
var parent_1, compilerOptions, program, _c, _d, result, printer, _e, _f, file, to, content, e_1_1;
|
|
66
66
|
var e_1, _g;
|
|
67
67
|
var _this = this;
|
|
68
68
|
return __generator(this, function (_h) {
|
|
@@ -93,7 +93,12 @@ var TypiaFileFactory;
|
|
|
93
93
|
_h.sent();
|
|
94
94
|
_h.label = 8;
|
|
95
95
|
case 8:
|
|
96
|
-
|
|
96
|
+
compilerOptions = typescript_1.default.parseJsonConfigFileContent(typescript_1.default.readConfigFile(props.project, typescript_1.default.sys.readFile).config, {
|
|
97
|
+
fileExists: typescript_1.default.sys.fileExists,
|
|
98
|
+
readFile: typescript_1.default.sys.readFile,
|
|
99
|
+
readDirectory: typescript_1.default.sys.readDirectory,
|
|
100
|
+
useCaseSensitiveFileNames: typescript_1.default.sys.useCaseSensitiveFileNames,
|
|
101
|
+
}, path_1.default.dirname(props.project)).options;
|
|
97
102
|
_d = (_c = typescript_1.default).createProgram;
|
|
98
103
|
return [4, (function () { return __awaiter(_this, void 0, void 0, function () {
|
|
99
104
|
var container;
|
|
@@ -109,7 +114,7 @@ var TypiaFileFactory;
|
|
|
109
114
|
});
|
|
110
115
|
}); })()];
|
|
111
116
|
case 9:
|
|
112
|
-
program = _d.apply(_c, [_h.sent(),
|
|
117
|
+
program = _d.apply(_c, [_h.sent(), compilerOptions]);
|
|
113
118
|
result = typescript_1.default.transform(program
|
|
114
119
|
.getSourceFiles()
|
|
115
120
|
.filter(function (file) {
|
|
@@ -117,7 +122,7 @@ var TypiaFileFactory;
|
|
|
117
122
|
path_1.default.resolve(file.fileName).indexOf(props.input) !== -1;
|
|
118
123
|
}), [
|
|
119
124
|
ImportTransformer_1.ImportTransformer.transform(props.input)(props.output),
|
|
120
|
-
(0, transform_1.default)(program, (_b = ((_a =
|
|
125
|
+
(0, transform_1.default)(program, (_b = ((_a = compilerOptions.plugins) !== null && _a !== void 0 ? _a : []).find(function (p) {
|
|
121
126
|
return p.transform === "typia/lib/transform" ||
|
|
122
127
|
p.transform === "../src/transform.ts";
|
|
123
128
|
})) !== null && _b !== void 0 ? _b : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypiaFileFactory.js","sourceRoot":"","sources":["../../src/factories/TypiaFileFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAoB;AACpB,8CAAwB;AACxB,0DAA4B;AAE5B,uEAAsE;AAEtE,2DAAqC;AAErC,IAAiB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"TypiaFileFactory.js","sourceRoot":"","sources":["../../src/factories/TypiaFileFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,12 +44,12 @@ var check_string_tags = function (importer) {
|
|
|
44
44
|
if (tag.kind === "format")
|
|
45
45
|
conditions.push([
|
|
46
46
|
tag,
|
|
47
|
-
typescript_1.default.factory.
|
|
47
|
+
typescript_1.default.factory.createCallExpression(importer.use("is_".concat(tag.value)), undefined, [input]),
|
|
48
48
|
]);
|
|
49
49
|
else if (tag.kind === "pattern")
|
|
50
50
|
conditions.push([
|
|
51
51
|
tag,
|
|
52
|
-
typescript_1.default.factory.
|
|
52
|
+
typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("RegExp(/".concat(tag.value, "/).test")), undefined, [input]),
|
|
53
53
|
]);
|
|
54
54
|
else if (tag.kind === "length")
|
|
55
55
|
conditions.push([
|