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.
Files changed (72) hide show
  1. package/README.md +28 -28
  2. package/lib/IRandomGenerator.d.ts +11 -0
  3. package/lib/factories/IdentifierFactory.d.ts +1 -1
  4. package/lib/factories/IdentifierFactory.js +10 -2
  5. package/lib/factories/IdentifierFactory.js.map +1 -1
  6. package/lib/metadata/ICommentTag.d.ts +4 -0
  7. package/lib/metadata/ICommentTag.js +3 -0
  8. package/lib/metadata/ICommentTag.js.map +1 -0
  9. package/lib/programmers/RandomProgrammer.d.ts +1 -1
  10. package/lib/programmers/RandomProgrammer.js +95 -82
  11. package/lib/programmers/RandomProgrammer.js.map +1 -1
  12. package/lib/programmers/helpers/RandomJoiner.d.ts +4 -3
  13. package/lib/programmers/helpers/RandomJoiner.js +10 -7
  14. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  15. package/lib/programmers/helpers/RandomRanger.d.ts +1 -1
  16. package/lib/programmers/internal/application_native.d.ts +1 -4
  17. package/lib/programmers/internal/application_native.js.map +1 -1
  18. package/lib/programmers/internal/check_array.js +2 -1
  19. package/lib/programmers/internal/check_array.js.map +1 -1
  20. package/lib/programmers/internal/check_array_length.js +20 -23
  21. package/lib/programmers/internal/check_array_length.js.map +1 -1
  22. package/lib/programmers/internal/check_custom.d.ts +1 -5
  23. package/lib/programmers/internal/check_custom.js +5 -15
  24. package/lib/programmers/internal/check_custom.js.map +1 -1
  25. package/lib/programmers/internal/check_number.js.map +1 -1
  26. package/lib/programmers/internal/check_object.d.ts +1 -13
  27. package/lib/programmers/internal/check_object.js.map +1 -1
  28. package/lib/programmers/internal/check_union_array_like.d.ts +1 -21
  29. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  30. package/lib/programmers/internal/feature_object_entries.d.ts +1 -10
  31. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  32. package/lib/programmers/internal/get_comment_tags.d.ts +1 -0
  33. package/lib/programmers/internal/get_comment_tags.js +25 -0
  34. package/lib/programmers/internal/get_comment_tags.js.map +1 -0
  35. package/lib/programmers/internal/metadata_to_pattern.d.ts +1 -2
  36. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  37. package/lib/programmers/internal/random_custom.d.ts +1 -0
  38. package/lib/programmers/internal/random_custom.js +20 -0
  39. package/lib/programmers/internal/random_custom.js.map +1 -0
  40. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  41. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  42. package/lib/transformers/CallExpressionTransformer.js +2 -2
  43. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  44. package/lib/transformers/features/miscellaneous/{CreateRandomGenerator.js → CreateRandomTransformer.js} +3 -3
  45. package/lib/transformers/features/miscellaneous/CreateRandomTransformer.js.map +1 -0
  46. package/lib/typings/Customizable.d.ts +0 -1
  47. package/package.json +1 -1
  48. package/src/IRandomGenerator.ts +16 -0
  49. package/src/factories/IdentifierFactory.ts +13 -5
  50. package/src/factories/MetadataTagFactory.ts +6 -6
  51. package/src/metadata/ICommentTag.ts +4 -0
  52. package/src/programmers/RandomProgrammer.ts +125 -100
  53. package/src/programmers/helpers/RandomJoiner.ts +19 -7
  54. package/src/programmers/helpers/RandomRanger.ts +1 -1
  55. package/src/programmers/internal/application_native.ts +3 -0
  56. package/src/programmers/internal/check_array.ts +5 -1
  57. package/src/programmers/internal/check_array_length.ts +5 -10
  58. package/src/programmers/internal/check_custom.ts +21 -29
  59. package/src/programmers/internal/check_number.ts +3 -0
  60. package/src/programmers/internal/check_object.ts +7 -0
  61. package/src/programmers/internal/check_union_array_like.ts +7 -0
  62. package/src/programmers/internal/feature_object_entries.ts +3 -0
  63. package/src/programmers/internal/get_comment_tags.ts +23 -0
  64. package/src/programmers/internal/metadata_to_pattern.ts +3 -0
  65. package/src/programmers/internal/random_custom.ts +30 -0
  66. package/src/programmers/internal/stringify_dynamic_properties.ts +3 -0
  67. package/src/programmers/internal/stringify_regular_properties.ts +3 -0
  68. package/src/transformers/CallExpressionTransformer.ts +1 -1
  69. package/src/transformers/features/miscellaneous/{CreateRandomGenerator.ts → CreateRandomTransformer.ts} +1 -0
  70. package/src/typings/Customizable.ts +0 -1
  71. package/lib/transformers/features/miscellaneous/CreateRandomGenerator.js.map +0 -1
  72. /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 | T): input is T; // returns boolean
11
- export function assert<T>(input: unknown | T): T; // throws TypeGuardError
12
- export function validate<T>(input: unknown | T): IValidation<T>; // detailed
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>; // generate random data
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 times faster** than `class-validator`.
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
  ![Is Function Benchmark](https://github.com/samchon/typia/raw/master/benchmark/results/11th%20Gen%20Intel(R)%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
- > - **Miscellaneous**
180
- > - [`random()` function](https://github.com/samchon/typia/wiki/Miscellaneous#random-function)
181
- > - [`clone()` functions](https://github.com/samchon/typia/wiki/Miscellaneous#clone-functions)
182
- > - [`prune()` functions](https://github.com/samchon/typia/wiki/Miscellaneous#prune-functions)
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: T | unknown): input is T; // returns boolean
188
- export function assert<T>(input: T | unknown): T; // throws `TypeGuardError`
189
- export function validate<T>(input: T | unknown): IValidation<T>; // detailed
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: T | unknown): input is T;
193
- export function assertEquals<T>(input: T | unknown): T;
194
- export function validateEquals<T>(input: T | unknown): IValidation<T>;
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
- - when not matched, returns [`IValidation.IFailure`](https://github.com/samchon/typia/blob/master/src/IValidation.ts) with `errors` property
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#comment-tags).
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
- export function random<T>(): Primitive<T>; // random data generator
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 test data, just generate it through `typia.random<T>()`.
268
+ When you need random data, just call only `typia.random<T>()` function.
273
269
 
274
- If a little bit special data being required, use ([Features > Runtime Validators > Comment Tags](https://github.com/samchon/typia/wiki/Runtime-Validators#comment-tags))
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`: **15,000x times faster** validation decorators
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, undefined, type, init);
33
- return typescript_1.default.factory.createParameterDeclaration(undefined, undefined, undefined, name, undefined, type, init);
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,CAoEjC;AApED,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,IAAoB;QAEpB,IAAI,oBAAE,CAAC,OAAO,IAAI,KAAK;YACnB,OAAO,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CACxC,SAAS,EACT,SAAS,EACT,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,IAAI,CACP,CAAC;QAEN,OAAO,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CACxC,SAAS,EACT,SAAS,EACT,SAAS,EACT,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,IAAI,CACP,CAAC;IACN,CAAC;IAxBe,2BAAS,YAwBxB,CAAA;AAwBL,CAAC,EApEgB,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAoEjC"}
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,4 @@
1
+ export interface ICommentTag {
2
+ name: string;
3
+ value?: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ICommentTag.js.map
@@ -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>"), IdentifierFactory_1.IdentifierFactory.join(typescript_1.default.factory.createParenthesizedExpression(typescript_1.default.factory.createAsExpression(modulo, TypeFactory_1.TypeFactory.keyword("any"))), "generator")),
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
- var type = tags.find(function (t) { return t.kind === "type" && t.value === "uint"; })
262
- ? "int"
263
- : tags.find(function (t) { return t.kind === "type" && t.value === "int"; })
264
- ? "uint"
265
- : "double";
266
- return RandomRanger_1.RandomRanger.number({
267
- type: type,
268
- transform: function (value) { return typescript_1.default.factory.createNumericLiteral(value); },
269
- setter: function (args) {
270
- return typescript_1.default.factory.createCallExpression(type === "double" &&
271
- tags.every(function (t) {
272
- return t.kind !== "multipleOf" &&
273
- t.kind !== "step";
274
- })
275
- ? COALESCE(importer)("number")
276
- : COALESCE(importer)("integer"), undefined, args.map(function (val) { return typescript_1.default.factory.createNumericLiteral(val); }));
277
- },
278
- })({
279
- minimum: 0,
280
- maximum: 100,
281
- gap: 10,
282
- })(tags);
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 RandomRanger_1.RandomRanger.number({
288
- type: tags.find(function (t) { return t.kind === "type" && t.value === "uint"; })
289
- ? "uint"
290
- : "int",
291
- transform: function (value) {
292
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("BigInt"), undefined, [typescript_1.default.factory.createStringLiteral(value.toString())]);
293
- },
294
- setter: function (args) {
295
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("bigint"), undefined, args.map(function (value) {
296
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("BigInt"), undefined, [
297
- typescript_1.default.factory.createStringLiteral(value.toString()),
298
- ]);
299
- }));
300
- },
301
- })({
302
- minimum: 0,
303
- maximum: 100,
304
- gap: 10,
305
- })(tags);
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
- var e_9, _a;
311
- try {
312
- for (var tags_1 = __values(tags), tags_1_1 = tags_1.next(); !tags_1_1.done; tags_1_1 = tags_1.next()) {
313
- var t = tags_1_1.value;
314
- if (t.kind === "format")
315
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)(t.value), undefined, undefined);
316
- else if (t.kind === "pattern")
317
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("pattern"), undefined, [typescript_1.default.factory.createIdentifier("/".concat(t.value, "/"))]);
318
- }
319
- }
320
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
321
- finally {
322
- try {
323
- if (tags_1_1 && !tags_1_1.done && (_a = tags_1.return)) _a.call(tags_1);
324
- }
325
- finally { if (e_9) throw e_9.error; }
326
- }
327
- var tail = RandomRanger_1.RandomRanger.length(COALESCE(importer))({
328
- minimum: 5,
329
- maximum: 25,
330
- gap: 5,
331
- })({
332
- fixed: "length",
333
- minimum: "minLength",
334
- maximum: "maxLength",
335
- })(tags);
336
- return typescript_1.default.factory.createCallExpression(COALESCE(importer)("string"), undefined, tail ? [tail] : undefined);
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.".concat(name)), IdentifierFactory_1.IdentifierFactory.join(importer.use("generator"), name));
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) { return function (items, tags) {
58
- return typescript_1.default.factory.createArrayLiteralExpression(items.map(function (i) { var _a; return decoder((_a = i.rest) !== null && _a !== void 0 ? _a : i, tags); }), true);
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),