typia 3.7.0 → 3.7.1-dev.20230406
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 +28 -28
- package/lib/IRandomGenerator.d.ts +11 -0
- package/lib/factories/IdentifierFactory.d.ts +1 -1
- package/lib/factories/IdentifierFactory.js +10 -2
- package/lib/factories/IdentifierFactory.js.map +1 -1
- package/lib/metadata/ICommentTag.d.ts +4 -0
- package/lib/metadata/ICommentTag.js +3 -0
- package/lib/metadata/ICommentTag.js.map +1 -0
- package/lib/programmers/RandomProgrammer.d.ts +1 -1
- package/lib/programmers/RandomProgrammer.js +95 -82
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/helpers/RandomJoiner.d.ts +4 -3
- package/lib/programmers/helpers/RandomJoiner.js +10 -7
- package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
- package/lib/programmers/helpers/RandomRanger.d.ts +1 -1
- package/lib/programmers/internal/application_native.d.ts +1 -4
- package/lib/programmers/internal/application_native.js.map +1 -1
- package/lib/programmers/internal/check_array.js +2 -1
- package/lib/programmers/internal/check_array.js.map +1 -1
- package/lib/programmers/internal/check_array_length.js +20 -23
- package/lib/programmers/internal/check_array_length.js.map +1 -1
- package/lib/programmers/internal/check_custom.d.ts +1 -5
- package/lib/programmers/internal/check_custom.js +5 -15
- package/lib/programmers/internal/check_custom.js.map +1 -1
- package/lib/programmers/internal/check_number.js.map +1 -1
- package/lib/programmers/internal/check_object.d.ts +1 -13
- package/lib/programmers/internal/check_object.js.map +1 -1
- package/lib/programmers/internal/check_union_array_like.d.ts +1 -21
- package/lib/programmers/internal/check_union_array_like.js.map +1 -1
- package/lib/programmers/internal/feature_object_entries.d.ts +1 -10
- package/lib/programmers/internal/feature_object_entries.js.map +1 -1
- package/lib/programmers/internal/get_comment_tags.d.ts +1 -0
- package/lib/programmers/internal/get_comment_tags.js +25 -0
- package/lib/programmers/internal/get_comment_tags.js.map +1 -0
- package/lib/programmers/internal/metadata_to_pattern.d.ts +1 -2
- package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
- package/lib/programmers/internal/random_custom.d.ts +1 -0
- package/lib/programmers/internal/random_custom.js +20 -0
- package/lib/programmers/internal/random_custom.js.map +1 -0
- package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
- package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
- package/lib/transformers/CallExpressionTransformer.js +2 -2
- package/lib/transformers/CallExpressionTransformer.js.map +1 -1
- package/lib/transformers/features/miscellaneous/{CreateRandomGenerator.js → CreateRandomTransformer.js} +3 -3
- package/lib/transformers/features/miscellaneous/CreateRandomTransformer.js.map +1 -0
- package/lib/typings/Customizable.d.ts +0 -1
- package/package.json +1 -1
- package/src/IRandomGenerator.ts +16 -0
- package/src/factories/IdentifierFactory.ts +13 -5
- package/src/factories/MetadataTagFactory.ts +6 -6
- package/src/metadata/ICommentTag.ts +4 -0
- package/src/programmers/RandomProgrammer.ts +125 -100
- package/src/programmers/helpers/RandomJoiner.ts +19 -7
- package/src/programmers/helpers/RandomRanger.ts +1 -1
- package/src/programmers/internal/application_native.ts +3 -0
- package/src/programmers/internal/check_array.ts +5 -1
- package/src/programmers/internal/check_array_length.ts +5 -10
- package/src/programmers/internal/check_custom.ts +21 -29
- package/src/programmers/internal/check_number.ts +3 -0
- package/src/programmers/internal/check_object.ts +7 -0
- package/src/programmers/internal/check_union_array_like.ts +7 -0
- package/src/programmers/internal/feature_object_entries.ts +3 -0
- package/src/programmers/internal/get_comment_tags.ts +23 -0
- package/src/programmers/internal/metadata_to_pattern.ts +3 -0
- package/src/programmers/internal/random_custom.ts +30 -0
- package/src/programmers/internal/stringify_dynamic_properties.ts +3 -0
- package/src/programmers/internal/stringify_regular_properties.ts +3 -0
- package/src/transformers/CallExpressionTransformer.ts +1 -1
- package/src/transformers/features/miscellaneous/{CreateRandomGenerator.ts → CreateRandomTransformer.ts} +1 -0
- package/src/typings/Customizable.ts +0 -1
- package/lib/transformers/features/miscellaneous/CreateRandomGenerator.js.map +0 -1
- /package/lib/transformers/features/miscellaneous/{CreateRandomGenerator.d.ts → CreateRandomTransformer.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -7,16 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
```typescript
|
|
9
9
|
// RUNTIME VALIDATORS
|
|
10
|
-
export function is<T>(input: unknown
|
|
11
|
-
export function assert<T>(input: unknown
|
|
12
|
-
export function validate<T>(input: unknown
|
|
10
|
+
export function is<T>(input: unknown): input is T; // returns boolean
|
|
11
|
+
export function assert<T>(input: unknown): T; // throws TypeGuardError
|
|
12
|
+
export function validate<T>(input: unknown): IValidation<T>; // detailed
|
|
13
13
|
export const customValidators: CustomValidatorMap; // can add custom validators
|
|
14
14
|
|
|
15
|
-
// STRICT VALIDATORS
|
|
16
|
-
export function equals<T>(input: unknown | T): input is T;
|
|
17
|
-
export function assertEquals<T>(input: unknown | T): T;
|
|
18
|
-
export function validateEquals<T>(input: unknown | T): IValidation<T>;
|
|
19
|
-
|
|
20
15
|
// JSON
|
|
21
16
|
export function application<T>(): IJsonApplication; // JSON schema
|
|
22
17
|
export function assertParse<T>(input: string): T; // type safe parser
|
|
@@ -25,7 +20,7 @@ export function assertStringify<T>(input: T): string; // safe and faster
|
|
|
25
20
|
// +) stringify, isStringify, validateStringify
|
|
26
21
|
|
|
27
22
|
// MISC
|
|
28
|
-
export function random<T>(): Primitive<T>;
|
|
23
|
+
export function random<T>(g?: Partial<IRandomGenerator>): Primitive<T>;
|
|
29
24
|
export function clone<T>(input: T): Primitive<T>; // deep clone
|
|
30
25
|
export function prune<T extends object>(input: T): void; // erase extra props
|
|
31
26
|
// +) isClone, assertClone, validateClone
|
|
@@ -41,7 +36,7 @@ export function prune<T extends object>(input: T): void; // erase extra props
|
|
|
41
36
|
|
|
42
37
|
All functions in `typia` require **only one line**. You don't need any extra dedication like JSON schema definitions or decorator function calls. Just call `typia` function with only one line like `typia.assert<T>(input)`.
|
|
43
38
|
|
|
44
|
-
Also, as `typia` performs AOT (Ahead of Time) compilation skill, its performance is much faster than other competitive libaries. For an example, when comparing validate function `is()` with other competitive libraries, `typia` is maximum **15,000x
|
|
39
|
+
Also, as `typia` performs AOT (Ahead of Time) compilation skill, its performance is much faster than other competitive libaries. For an example, when comparing validate function `is()` with other competitive libraries, `typia` is maximum **15,000x faster** than `class-validator`.
|
|
45
40
|
|
|
46
41
|
%20Core(TM)%20i5-1135G7%20%40%202.40GHz/images/is.svg)
|
|
47
42
|
|
|
@@ -172,26 +167,26 @@ For more details, refer to the [Guide Documents (wiki)](https://github.com/samch
|
|
|
172
167
|
> - [comment tags](https://github.com/samchon/typia/wiki/Runtime-Validators#comment-tags)
|
|
173
168
|
> - [custom validators](https://github.com/samchon/typia/wiki/Runtime-Validators#custom-validators)
|
|
174
169
|
> - **Enhanced JSON**
|
|
175
|
-
> - [JSON schema](https://github.com/samchon/typia/wiki/Enhanced-JSON#json-schema)
|
|
176
|
-
> - [`parse()` functions](https://github.com/samchon/typia/wiki/Enhanced-JSON#parse-functions)
|
|
177
170
|
> - [`stringify()` functions](https://github.com/samchon/typia/wiki/Enhanced-JSON#stringify-functions)
|
|
171
|
+
> - [`parse()` functions](https://github.com/samchon/typia/wiki/Enhanced-JSON#parse-functions)
|
|
172
|
+
> - [JSON schema](https://github.com/samchon/typia/wiki/Enhanced-JSON#json-schema)
|
|
178
173
|
> - [comment tags](https://github.com/samchon/typia/wiki/Enhanced-JSON#comment-tags)
|
|
179
|
-
> - **
|
|
180
|
-
> - [`random()` function](https://github.com/samchon/typia/wiki/
|
|
181
|
-
> - [
|
|
182
|
-
> - [
|
|
174
|
+
> - **Random Generator**
|
|
175
|
+
> - [`random()` function](https://github.com/samchon/typia/wiki/Random-Generator#random-function)
|
|
176
|
+
> - [comment tags](https://github.com/samchon/typia/wiki/Random-Geneerator#comment-tags)
|
|
177
|
+
> - [customization](https://github.com/samchon/typia/wiki/Random-Generator#customization)
|
|
183
178
|
|
|
184
179
|
### Runtime Validators
|
|
185
180
|
```typescript
|
|
186
181
|
// ALLOW SUPERFLUOUS PROPERTIES
|
|
187
|
-
export function is<T>(input:
|
|
188
|
-
export function assert<T>(input:
|
|
189
|
-
export function validate<T>(input:
|
|
182
|
+
export function is<T>(input: unknown): input is T; // returns boolean
|
|
183
|
+
export function assert<T>(input: unknown): T; // throws `TypeGuardError`
|
|
184
|
+
export function validate<T>(input: unknown): IValidation<T>; // detailed
|
|
190
185
|
|
|
191
186
|
// DO NOT ALLOW SUPERFLUOUS PROPERTIES
|
|
192
|
-
export function equals<T>(input:
|
|
193
|
-
export function assertEquals<T>(input:
|
|
194
|
-
export function validateEquals<T>(input:
|
|
187
|
+
export function equals<T>(input: unknown): input is T;
|
|
188
|
+
export function assertEquals<T>(input: unknown): T;
|
|
189
|
+
export function validateEquals<T>(input: unknown): IValidation<T>;
|
|
195
190
|
|
|
196
191
|
// REUSABLE FACTORY FUNCTIONS
|
|
197
192
|
export function createIs<T>(): (input: unknown) => input is T;
|
|
@@ -211,14 +206,14 @@ export const customValidators: CustomValidatorMap;
|
|
|
211
206
|
- `assert()`: throws a [`TypeGuardError`](https://github.com/samchon/typia/blob/master/src/TypeGuardError.ts) when not matched
|
|
212
207
|
- `validate()`
|
|
213
208
|
- when matched, returns [`IValidation.ISuccess<T>`](https://github.com/samchon/typia/blob/master/src/IValidation.ts) with `value` property
|
|
214
|
-
-
|
|
209
|
+
- otherwise not matched, returns [`IValidation.IFailure`](https://github.com/samchon/typia/blob/master/src/IValidation.ts) with `errors` property
|
|
215
210
|
|
|
216
211
|
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.
|
|
217
212
|
|
|
218
213
|
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:
|
|
219
214
|
|
|
220
215
|
- [Features > Runtime Validators > Comment Tags](https://github.com/samchon/typia/wiki/Runtime-Validators#comment-tags)
|
|
221
|
-
- [Features > Runtime Validators > Custom Validators](https://github.com/samchon/typia/wiki/Runtime-Validators#
|
|
216
|
+
- [Features > Runtime Validators > Custom Validators](https://github.com/samchon/typia/wiki/Runtime-Validators#custom-validators).
|
|
222
217
|
|
|
223
218
|
### Enhanced JSON
|
|
224
219
|
```typescript
|
|
@@ -262,17 +257,20 @@ export function createAssertStringify<T>(): (input: T) => string;
|
|
|
262
257
|
|
|
263
258
|
### Miscellaneous
|
|
264
259
|
```typescript
|
|
265
|
-
|
|
260
|
+
// random data generator
|
|
261
|
+
export function random<T>(g?: Partial<IRandomGenerator>): Primitive<T>;
|
|
266
262
|
export function clone<T>(input: T): Primitive<T>; // deep copy
|
|
267
263
|
export function prune<T>(input: T): void; // remove superfluous properties
|
|
268
264
|
// +) isClone, assertClone, validateClone
|
|
269
265
|
// +) isPrune, assertPrune, validatePrune
|
|
270
266
|
```
|
|
271
267
|
|
|
272
|
-
When you need
|
|
268
|
+
When you need random data, just call only `typia.random<T>()` function.
|
|
273
269
|
|
|
274
|
-
If
|
|
270
|
+
If you need specific random data generation, utilize comment tags or do customize.
|
|
275
271
|
|
|
272
|
+
- [Features > Random Generator > comment tags](https://github.com/samchon/typia/wiki/Random-Generator#random-function)
|
|
273
|
+
- [Features > Random Generator > customization](https://github.com/samchon/typia/wiki/Random-Generator#customization)
|
|
276
274
|
|
|
277
275
|
|
|
278
276
|
|
|
@@ -286,7 +284,9 @@ If a little bit special data being required, use ([Features > Runtime Validators
|
|
|
286
284
|
|
|
287
285
|
[Nestia](https://github.com/samchon/nestia) is a set of helper libraries for `NestJS`, supporting below features:
|
|
288
286
|
|
|
289
|
-
- `@nestia/core`:
|
|
287
|
+
- `@nestia/core`: superfast decorators using `typia`
|
|
288
|
+
- **15,000x faster** validation
|
|
289
|
+
- **100x faster** JSON serialization
|
|
290
290
|
- `@nestia/sdk`: evolved **SDK** and **Swagger** generators
|
|
291
291
|
- SDK (Software Development Kit)
|
|
292
292
|
- interaction library for client developers
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Customizable } from "./typings/Customizable";
|
|
1
2
|
export interface IRandomGenerator {
|
|
2
3
|
boolean(): boolean;
|
|
3
4
|
integer(minimum?: number, maximum?: number): number;
|
|
@@ -13,4 +14,14 @@ export interface IRandomGenerator {
|
|
|
13
14
|
pattern(regex: RegExp): string;
|
|
14
15
|
date(minimum?: number, maximum?: number): string;
|
|
15
16
|
datetime(minimum?: number, maximum?: number): string;
|
|
17
|
+
customs?: IRandomGenerator.CustomMap;
|
|
18
|
+
}
|
|
19
|
+
export declare namespace IRandomGenerator {
|
|
20
|
+
type CustomMap = {
|
|
21
|
+
[Type in keyof Customizable]?: (tags: ICommentTag[]) => Customizable[Type] | undefined;
|
|
22
|
+
};
|
|
23
|
+
interface ICommentTag {
|
|
24
|
+
name: string;
|
|
25
|
+
value?: string;
|
|
26
|
+
}
|
|
16
27
|
}
|
|
@@ -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.ParameterDeclaration;
|
|
6
|
+
function parameter(name: string | ts.BindingName, type?: ts.TypeNode, init?: ts.Expression | ts.PunctuationToken<ts.SyntaxKind.QuestionToken>): ts.ParameterDeclaration;
|
|
7
7
|
}
|
|
@@ -29,8 +29,16 @@ var IdentifierFactory;
|
|
|
29
29
|
IdentifierFactory.postfix = postfix;
|
|
30
30
|
function parameter(name, type, init) {
|
|
31
31
|
if (typescript_1.default.version >= "4.8")
|
|
32
|
-
return typescript_1.default.factory.createParameterDeclaration(undefined, undefined, name,
|
|
33
|
-
|
|
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
|
+
? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken)
|
|
34
|
+
: undefined, type, init && init.kind !== typescript_1.default.SyntaxKind.QuestionToken
|
|
35
|
+
? init
|
|
36
|
+
: undefined);
|
|
37
|
+
return typescript_1.default.factory.createParameterDeclaration(undefined, undefined, undefined, name, (init === null || init === void 0 ? void 0 : init.kind) === typescript_1.default.SyntaxKind.QuestionToken
|
|
38
|
+
? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken)
|
|
39
|
+
: undefined, type, init && init.kind !== typescript_1.default.SyntaxKind.QuestionToken
|
|
40
|
+
? init
|
|
41
|
+
: undefined);
|
|
34
42
|
}
|
|
35
43
|
IdentifierFactory.parameter = parameter;
|
|
36
44
|
})(IdentifierFactory = exports.IdentifierFactory || (exports.IdentifierFactory = {}));
|
|
@@ -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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICommentTag.js","sourceRoot":"","sources":["../../src/metadata/ICommentTag.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
import { IProject } from "../transformers/IProject";
|
|
3
3
|
export declare namespace RandomProgrammer {
|
|
4
|
-
function generate(project: IProject, modulo: ts.LeftHandSideExpression): (type: ts.Type, name?: string) => ts.ArrowFunction;
|
|
4
|
+
function generate(project: IProject, modulo: ts.LeftHandSideExpression, init?: ts.Expression): (type: ts.Type, name?: string) => ts.ArrowFunction;
|
|
5
5
|
}
|
|
@@ -51,9 +51,10 @@ var TypeFactory_1 = require("../factories/TypeFactory");
|
|
|
51
51
|
var FunctionImporeter_1 = require("./helpers/FunctionImporeter");
|
|
52
52
|
var RandomJoiner_1 = require("./helpers/RandomJoiner");
|
|
53
53
|
var RandomRanger_1 = require("./helpers/RandomRanger");
|
|
54
|
+
var random_custom_1 = require("./internal/random_custom");
|
|
54
55
|
var RandomProgrammer;
|
|
55
56
|
(function (RandomProgrammer) {
|
|
56
|
-
function generate(project, modulo) {
|
|
57
|
+
function generate(project, modulo, init) {
|
|
57
58
|
var importer = new FunctionImporeter_1.FunctionImporter();
|
|
58
59
|
return function (type, name) {
|
|
59
60
|
var collection = new MetadataCollection_1.MetadataCollection();
|
|
@@ -65,9 +66,9 @@ var RandomProgrammer;
|
|
|
65
66
|
var output = decode(importer)({
|
|
66
67
|
object: false,
|
|
67
68
|
recursive: false,
|
|
68
|
-
})(meta, []);
|
|
69
|
+
})(meta, [], []);
|
|
69
70
|
return typescript_1.default.factory.createArrowFunction(undefined, undefined, [
|
|
70
|
-
IdentifierFactory_1.IdentifierFactory.parameter("generator", typescript_1.default.factory.createTypeReferenceNode("Partial<typia.IRandomGenerator>"),
|
|
71
|
+
IdentifierFactory_1.IdentifierFactory.parameter("generator", typescript_1.default.factory.createTypeReferenceNode("Partial<typia.IRandomGenerator>"), init !== null && init !== void 0 ? init : typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken)),
|
|
71
72
|
], typescript_1.default.factory.createTypeReferenceNode("typia.Primitive<".concat(name !== null && name !== void 0 ? name : TypeFactory_1.TypeFactory.getFullName(project.checker, type), ">")), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray(__spreadArray([], __read(importer.declare(modulo)), false), __read(functors), false), [
|
|
72
73
|
typescript_1.default.factory.createReturnStatement(output),
|
|
73
74
|
], false), true));
|
|
@@ -87,7 +88,7 @@ var RandomProgrammer;
|
|
|
87
88
|
}; };
|
|
88
89
|
var decode = function (importer) {
|
|
89
90
|
return function (explore) {
|
|
90
|
-
return function (meta, tags) {
|
|
91
|
+
return function (meta, tags, comments) {
|
|
91
92
|
var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f, e_7, _g, e_8, _h;
|
|
92
93
|
var expressions = [];
|
|
93
94
|
if (meta.any)
|
|
@@ -140,11 +141,11 @@ var RandomProgrammer;
|
|
|
140
141
|
if (atomic === "boolean")
|
|
141
142
|
expressions.push(decode_boolean(importer));
|
|
142
143
|
else if (atomic === "number")
|
|
143
|
-
expressions.push(decode_number(importer)(tags));
|
|
144
|
+
expressions.push(decode_number(importer)(tags)(comments));
|
|
144
145
|
else if (atomic === "string")
|
|
145
|
-
expressions.push(decode_string(importer)(tags));
|
|
146
|
+
expressions.push(decode_string(importer)(tags)(comments));
|
|
146
147
|
else if (atomic === "bigint")
|
|
147
|
-
expressions.push(decode_bigint(importer)(tags));
|
|
148
|
+
expressions.push(decode_bigint(importer)(tags)(comments));
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
@@ -155,11 +156,11 @@ var RandomProgrammer;
|
|
|
155
156
|
finally { if (e_4) throw e_4.error; }
|
|
156
157
|
}
|
|
157
158
|
if (meta.resolved)
|
|
158
|
-
expressions.push(decode(importer)(explore)(meta.resolved, tags));
|
|
159
|
+
expressions.push(decode(importer)(explore)(meta.resolved, tags, comments));
|
|
159
160
|
try {
|
|
160
161
|
for (var _s = __values(meta.tuples), _t = _s.next(); !_t.done; _t = _s.next()) {
|
|
161
162
|
var t = _t.value;
|
|
162
|
-
expressions.push(RandomJoiner_1.RandomJoiner.tuple(decode(importer)(explore))(t, tags));
|
|
163
|
+
expressions.push(RandomJoiner_1.RandomJoiner.tuple(decode(importer)(explore))(t, tags, comments));
|
|
163
164
|
}
|
|
164
165
|
}
|
|
165
166
|
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
@@ -172,7 +173,7 @@ var RandomProgrammer;
|
|
|
172
173
|
try {
|
|
173
174
|
for (var _u = __values(meta.arrays), _v = _u.next(); !_v.done; _v = _u.next()) {
|
|
174
175
|
var a = _v.value;
|
|
175
|
-
var array = RandomJoiner_1.RandomJoiner.array(COALESCE(importer))(decode(importer)(explore))(a, tags);
|
|
176
|
+
var array = RandomJoiner_1.RandomJoiner.array(COALESCE(importer))(decode(importer)(explore))(a, tags, comments);
|
|
176
177
|
expressions.push(explore.recursive && a.objects.length
|
|
177
178
|
? typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createLogicalAnd(typescript_1.default.factory.createIdentifier("_recursive"), typescript_1.default.factory.createLessThan(typescript_1.default.factory.createNumericLiteral(5), typescript_1.default.factory.createIdentifier("_depth"))), undefined, typescript_1.default.factory.createIdentifier("[]"), undefined, array)
|
|
178
179
|
: array);
|
|
@@ -211,9 +212,9 @@ var RandomProgrammer;
|
|
|
211
212
|
if (native === "Boolean")
|
|
212
213
|
expressions.push(decode_boolean(importer));
|
|
213
214
|
else if (native === "Number")
|
|
214
|
-
expressions.push(decode_number(importer)(tags));
|
|
215
|
+
expressions.push(decode_number(importer)(tags)(comments));
|
|
215
216
|
else if (native === "String")
|
|
216
|
-
expressions.push(decode_string(importer)(tags));
|
|
217
|
+
expressions.push(decode_string(importer)(tags)(comments));
|
|
217
218
|
else
|
|
218
219
|
expressions.push(typescript_1.default.factory.createIdentifier("{}"));
|
|
219
220
|
}
|
|
@@ -252,93 +253,105 @@ var RandomProgrammer;
|
|
|
252
253
|
var decode_template = function (importer) {
|
|
253
254
|
return function (explore) {
|
|
254
255
|
return function (template) {
|
|
255
|
-
return TemplateFactory_1.TemplateFactory.generate(template.map(function (meta) { return decode(importer)(explore)(meta, []); }));
|
|
256
|
+
return TemplateFactory_1.TemplateFactory.generate(template.map(function (meta) { return decode(importer)(explore)(meta, [], []); }));
|
|
256
257
|
};
|
|
257
258
|
};
|
|
258
259
|
};
|
|
259
260
|
var decode_number = function (importer) {
|
|
260
261
|
return function (tags) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
262
|
+
return function (comments) {
|
|
263
|
+
var type = tags.find(function (t) { return t.kind === "type" && t.value === "uint"; })
|
|
264
|
+
? "int"
|
|
265
|
+
: tags.find(function (t) { return t.kind === "type" && t.value === "int"; })
|
|
266
|
+
? "uint"
|
|
267
|
+
: "double";
|
|
268
|
+
return (0, random_custom_1.random_custom)(COALESCE(importer))("number")(comments)(RandomRanger_1.RandomRanger.number({
|
|
269
|
+
type: type,
|
|
270
|
+
transform: function (value) {
|
|
271
|
+
return typescript_1.default.factory.createNumericLiteral(value);
|
|
272
|
+
},
|
|
273
|
+
setter: function (args) {
|
|
274
|
+
return typescript_1.default.factory.createCallExpression(type === "double" &&
|
|
275
|
+
tags.every(function (t) {
|
|
276
|
+
return t.kind !== "multipleOf" &&
|
|
277
|
+
t.kind !== "step";
|
|
278
|
+
})
|
|
279
|
+
? COALESCE(importer)("number")
|
|
280
|
+
: COALESCE(importer)("integer"), undefined, args.map(function (val) {
|
|
281
|
+
return typescript_1.default.factory.createNumericLiteral(val);
|
|
282
|
+
}));
|
|
283
|
+
},
|
|
284
|
+
})({
|
|
285
|
+
minimum: 0,
|
|
286
|
+
maximum: 100,
|
|
287
|
+
gap: 10,
|
|
288
|
+
})(tags));
|
|
289
|
+
};
|
|
283
290
|
};
|
|
284
291
|
};
|
|
285
292
|
var decode_bigint = function (importer) {
|
|
286
293
|
return function (tags) {
|
|
287
|
-
return
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
return typescript_1.default.factory.createCallExpression(
|
|
297
|
-
typescript_1.default.factory.
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
294
|
+
return function (comments) {
|
|
295
|
+
return (0, random_custom_1.random_custom)(COALESCE(importer))("bigint")(comments)(RandomRanger_1.RandomRanger.number({
|
|
296
|
+
type: tags.find(function (t) { return t.kind === "type" && t.value === "uint"; })
|
|
297
|
+
? "uint"
|
|
298
|
+
: "int",
|
|
299
|
+
transform: function (value) {
|
|
300
|
+
return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("BigInt"), undefined, [typescript_1.default.factory.createStringLiteral(value.toString())]);
|
|
301
|
+
},
|
|
302
|
+
setter: function (args) {
|
|
303
|
+
return typescript_1.default.factory.createCallExpression(COALESCE(importer)("bigint"), undefined, args.map(function (value) {
|
|
304
|
+
return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("BigInt"), undefined, [
|
|
305
|
+
typescript_1.default.factory.createStringLiteral(value.toString()),
|
|
306
|
+
]);
|
|
307
|
+
}));
|
|
308
|
+
},
|
|
309
|
+
})({
|
|
310
|
+
minimum: 0,
|
|
311
|
+
maximum: 100,
|
|
312
|
+
gap: 10,
|
|
313
|
+
})(tags));
|
|
314
|
+
};
|
|
306
315
|
};
|
|
307
316
|
};
|
|
308
317
|
var decode_string = function (importer) {
|
|
309
318
|
return function (tags) {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
319
|
+
return function (comments) {
|
|
320
|
+
return (0, random_custom_1.random_custom)(COALESCE(importer))("string")(comments)((function () {
|
|
321
|
+
var e_9, _a;
|
|
322
|
+
try {
|
|
323
|
+
for (var tags_1 = __values(tags), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) {
|
|
324
|
+
var t = tags_1_1.value;
|
|
325
|
+
if (t.kind === "format")
|
|
326
|
+
return typescript_1.default.factory.createCallExpression(COALESCE(importer)(t.value), undefined, undefined);
|
|
327
|
+
else if (t.kind === "pattern")
|
|
328
|
+
return typescript_1.default.factory.createCallExpression(COALESCE(importer)("pattern"), undefined, [typescript_1.default.factory.createIdentifier("/".concat(t.value, "/"))]);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
332
|
+
finally {
|
|
333
|
+
try {
|
|
334
|
+
if (tags_1_1 && !tags_1_1.done && (_a = tags_1.return)) _a.call(tags_1);
|
|
335
|
+
}
|
|
336
|
+
finally { if (e_9) throw e_9.error; }
|
|
337
|
+
}
|
|
338
|
+
var tail = RandomRanger_1.RandomRanger.length(COALESCE(importer))({
|
|
339
|
+
minimum: 5,
|
|
340
|
+
maximum: 25,
|
|
341
|
+
gap: 5,
|
|
342
|
+
})({
|
|
343
|
+
fixed: "length",
|
|
344
|
+
minimum: "minLength",
|
|
345
|
+
maximum: "maxLength",
|
|
346
|
+
})(tags);
|
|
347
|
+
return typescript_1.default.factory.createCallExpression(COALESCE(importer)("string"), undefined, tail ? [tail] : undefined);
|
|
348
|
+
})());
|
|
349
|
+
};
|
|
337
350
|
};
|
|
338
351
|
};
|
|
339
352
|
})(RandomProgrammer = exports.RandomProgrammer || (exports.RandomProgrammer = {}));
|
|
340
353
|
var FUNCTOR = function (i) { return "$ro".concat(i); };
|
|
341
354
|
var COALESCE = function (importer) { return function (name) {
|
|
342
|
-
return ExpressionFactory_1.ExpressionFactory.coalesce(typescript_1.default.factory.createIdentifier("generator
|
|
355
|
+
return ExpressionFactory_1.ExpressionFactory.coalesce(typescript_1.default.factory.createPropertyAccessChain(typescript_1.default.factory.createIdentifier("generator"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createIdentifier(name)), IdentifierFactory_1.IdentifierFactory.join(importer.use("generator"), name));
|
|
343
356
|
}; };
|
|
344
357
|
//# sourceMappingURL=RandomProgrammer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RandomProgrammer.js","sourceRoot":"","sources":["../../src/programmers/RandomProgrammer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RandomProgrammer.js","sourceRoot":"","sources":["../../src/programmers/RandomProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
|
+
import { ICommentTag } from "../../metadata/ICommentTag";
|
|
2
3
|
import { IMetadataTag } from "../../metadata/IMetadataTag";
|
|
3
4
|
import { Metadata } from "../../metadata/Metadata";
|
|
4
5
|
import { MetadataObject } from "../../metadata/MetadataObject";
|
|
5
6
|
export declare namespace RandomJoiner {
|
|
6
|
-
type Decoder = (meta: Metadata, tags: IMetadataTag[]) => ts.Expression;
|
|
7
|
-
const array: (coalesce: (method: string) => ts.Expression) => (decoder: Decoder) => (item: Metadata, tags: IMetadataTag[]) => ts.CallExpression;
|
|
8
|
-
const tuple: (decoder: Decoder) => (items: Metadata[], tags: IMetadataTag[]) => ts.ArrayLiteralExpression;
|
|
7
|
+
type Decoder = (meta: Metadata, tags: IMetadataTag[], comments: ICommentTag[]) => ts.Expression;
|
|
8
|
+
const array: (coalesce: (method: string) => ts.Expression) => (decoder: Decoder) => (item: Metadata, tags: IMetadataTag[], comments: ICommentTag[]) => ts.CallExpression;
|
|
9
|
+
const tuple: (decoder: Decoder) => (items: Metadata[], tags: IMetadataTag[], comments: ICommentTag[]) => ts.ArrayLiteralExpression;
|
|
9
10
|
const object: (coalesce: (method: string) => ts.Expression) => (decoder: Decoder) => (obj: MetadataObject) => ts.ConciseBody;
|
|
10
11
|
}
|
|
@@ -33,12 +33,13 @@ var typescript_1 = __importDefault(require("typescript"));
|
|
|
33
33
|
var StatementFactory_1 = require("../../factories/StatementFactory");
|
|
34
34
|
var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
35
35
|
var Escaper_1 = require("../../utils/Escaper");
|
|
36
|
+
var get_comment_tags_1 = require("../internal/get_comment_tags");
|
|
36
37
|
var RandomRanger_1 = require("./RandomRanger");
|
|
37
38
|
var RandomJoiner;
|
|
38
39
|
(function (RandomJoiner) {
|
|
39
40
|
RandomJoiner.array = function (coalesce) {
|
|
40
41
|
return function (decoder) {
|
|
41
|
-
return function (item, tags) {
|
|
42
|
+
return function (item, tags, comments) {
|
|
42
43
|
var tail = RandomRanger_1.RandomRanger.length(coalesce)({
|
|
43
44
|
minimum: 0,
|
|
44
45
|
maximum: 3,
|
|
@@ -49,14 +50,16 @@ var RandomJoiner;
|
|
|
49
50
|
maximum: "maxItems",
|
|
50
51
|
})(tags);
|
|
51
52
|
return typescript_1.default.factory.createCallExpression(coalesce("array"), undefined, __spreadArray([
|
|
52
|
-
typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, decoder(item, tags))
|
|
53
|
+
typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, decoder(item, tags, comments))
|
|
53
54
|
], __read((tail ? [tail] : [])), false));
|
|
54
55
|
};
|
|
55
56
|
};
|
|
56
57
|
};
|
|
57
|
-
RandomJoiner.tuple = function (decoder) {
|
|
58
|
-
return
|
|
59
|
-
|
|
58
|
+
RandomJoiner.tuple = function (decoder) {
|
|
59
|
+
return function (items, tags, comments) {
|
|
60
|
+
return typescript_1.default.factory.createArrayLiteralExpression(items.map(function (i) { var _a; return decoder((_a = i.rest) !== null && _a !== void 0 ? _a : i, tags, comments); }), true);
|
|
61
|
+
};
|
|
62
|
+
};
|
|
60
63
|
RandomJoiner.object = function (coalesce) {
|
|
61
64
|
return function (decoder) {
|
|
62
65
|
return function (obj) {
|
|
@@ -68,7 +71,7 @@ var RandomJoiner;
|
|
|
68
71
|
var str = p.key.getSoleLiteral();
|
|
69
72
|
return typescript_1.default.factory.createPropertyAssignment(Escaper_1.Escaper.variable(str)
|
|
70
73
|
? str
|
|
71
|
-
: typescript_1.default.factory.createStringLiteral(str), decoder(p.value, p.tags));
|
|
74
|
+
: typescript_1.default.factory.createStringLiteral(str), decoder(p.value, p.tags, (0, get_comment_tags_1.get_comment_tags)(false)(p.jsDocTags)));
|
|
72
75
|
}), true);
|
|
73
76
|
if (dynamic.length === 0)
|
|
74
77
|
return literal;
|
|
@@ -91,7 +94,7 @@ var RandomJoiner;
|
|
|
91
94
|
return function (decoder) {
|
|
92
95
|
return function (p) {
|
|
93
96
|
return typescript_1.default.factory.createCallExpression(coalesce("array"), undefined, [
|
|
94
|
-
typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createElementAccessExpression(typescript_1.default.factory.createIdentifier("output"), decoder(p.key, [])), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsToken), decoder(p.value, p.tags))),
|
|
97
|
+
typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createElementAccessExpression(typescript_1.default.factory.createIdentifier("output"), decoder(p.key, [], [])), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsToken), decoder(p.value, p.tags, (0, get_comment_tags_1.get_comment_tags)(false)(p.jsDocTags)))),
|
|
95
98
|
typescript_1.default.factory.createCallExpression(coalesce("integer"), undefined, [
|
|
96
99
|
typescript_1.default.factory.createNumericLiteral(0),
|
|
97
100
|
typescript_1.default.factory.createNumericLiteral(3),
|