typia 3.7.0 → 3.7.1-dev.20230405

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 +1 -1
  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
@@ -5,6 +5,9 @@ import { PatternUtil } from "../../utils/PatternUtil";
5
5
 
6
6
  import { template_to_pattern } from "./template_to_pattern";
7
7
 
8
+ /**
9
+ * @internal
10
+ */
8
11
  export const metadata_to_pattern =
9
12
  (top: boolean) =>
10
13
  (meta: Metadata): string => {
@@ -0,0 +1,30 @@
1
+ import ts from "typescript";
2
+
3
+ import { ExpressionFactory } from "../../factories/ExpressionFactory";
4
+ import { LiteralFactory } from "../../factories/LiteralFactory";
5
+
6
+ import { ICommentTag } from "../../metadata/ICommentTag";
7
+
8
+ import { Customizable } from "../../typings/Customizable";
9
+
10
+ /**
11
+ * @internal
12
+ */
13
+ export const random_custom =
14
+ (accessor: (name: string) => ts.Expression) =>
15
+ (type: keyof Customizable) =>
16
+ (comments: ICommentTag[]) =>
17
+ (expression: ts.Expression) =>
18
+ ExpressionFactory.coalesce(
19
+ ts.factory.createCallChain(
20
+ ts.factory.createPropertyAccessChain(
21
+ accessor("customs"),
22
+ ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
23
+ ts.factory.createIdentifier(type),
24
+ ),
25
+ ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
26
+ undefined,
27
+ [LiteralFactory.generate(comments)],
28
+ ),
29
+ expression,
30
+ );
@@ -150,6 +150,9 @@ export function stringify_dynamic_properties(
150
150
  return output();
151
151
  }
152
152
 
153
+ /**
154
+ * @internal
155
+ */
153
156
  function stringify(entry: IExpressionEntry<ts.Expression>): ts.ReturnStatement {
154
157
  return ts.factory.createReturnStatement(
155
158
  TemplateFactory.generate([
@@ -76,6 +76,9 @@ export function stringify_regular_properties(
76
76
  return output;
77
77
  }
78
78
 
79
+ /**
80
+ * @internal
81
+ */
79
82
  function sequence(meta: Metadata): number {
80
83
  return meta.any || !meta.required || meta.functional ? 0 : 1;
81
84
  }
@@ -12,7 +12,7 @@ import { CreateCloneTransformer } from "./features/miscellaneous/CreateCloneTran
12
12
  import { CreateIsCloneTransformer } from "./features/miscellaneous/CreateIsCloneTransformer";
13
13
  import { CreateIsPruneTransformer } from "./features/miscellaneous/CreateIsPruneTransformer";
14
14
  import { CreatePruneTransformer } from "./features/miscellaneous/CreatePruneTransformer";
15
- import { CreateRandomTransformer } from "./features/miscellaneous/CreateRandomGenerator";
15
+ import { CreateRandomTransformer } from "./features/miscellaneous/CreateRandomTransformer";
16
16
  import { CreateValidateCloneTransformer } from "./features/miscellaneous/CreateValidateCloneTransformer";
17
17
  import { CreateValidatePruneTransformer } from "./features/miscellaneous/CreateValidatePruneTransformer";
18
18
  import { IsCloneTransformer } from "./features/miscellaneous/IsCloneTransformer";
@@ -32,6 +32,7 @@ export namespace CreateRandomTransformer {
32
32
  },
33
33
  },
34
34
  modulo,
35
+ expression.arguments?.[0],
35
36
  )(type, node.getFullText().trim());
36
37
  }
37
38
  }
@@ -2,5 +2,4 @@ export type Customizable = {
2
2
  number: number;
3
3
  string: string;
4
4
  bigint: bigint;
5
- array: any[];
6
5
  };
@@ -1 +0,0 @@
1
- {"version":3,"file":"CreateRandomGenerator.js","sourceRoot":"","sources":["../../../../src/transformers/features/miscellaneous/CreateRandomGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,0EAAyE;AAIzE,IAAiB,uBAAuB,CA8BvC;AA9BD,WAAiB,uBAAuB;IACpC,SAAgB,SAAS,CACrB,OAAiB,EACjB,MAAiC,EACjC,UAA6B;;QAG7B,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;YAC9B,MAAM,IAAI,KAAK,qEAA6B,CAAC;QAGjD,IAAM,IAAI,GAAgB,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEhE,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,kEAAmC,CAAC;QAGvD,OAAO,mCAAgB,CAAC,QAAQ,uBAErB,OAAO,KACV,OAAO,wBACA,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,QAGtB,MAAM,CACT,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IA5Be,iCAAS,YA4BxB,CAAA;AACL,CAAC,EA9BgB,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QA8BvC"}