typia 5.5.0-dev.20240304 → 5.5.0-dev.20240306

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 (129) hide show
  1. package/lib/functional.d.ts +329 -0
  2. package/lib/functional.js +99 -234
  3. package/lib/functional.js.map +1 -1
  4. package/lib/http.d.ts +15 -6
  5. package/lib/http.js.map +1 -1
  6. package/lib/json.d.ts +17 -8
  7. package/lib/json.js.map +1 -1
  8. package/lib/misc.d.ts +18 -8
  9. package/lib/misc.js.map +1 -1
  10. package/lib/module.d.ts +17 -0
  11. package/lib/module.js.map +1 -1
  12. package/lib/notations.d.ts +12 -0
  13. package/lib/notations.js.map +1 -1
  14. package/lib/programmers/AssertProgrammer.d.ts +1 -0
  15. package/lib/programmers/AssertProgrammer.js +5 -2
  16. package/lib/programmers/AssertProgrammer.js.map +1 -1
  17. package/lib/programmers/RandomProgrammer.js +3 -1
  18. package/lib/programmers/RandomProgrammer.js.map +1 -1
  19. package/lib/programmers/TypiaProgrammer.js +1 -8
  20. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  21. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.d.ts +8 -2
  22. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +22 -16
  23. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
  24. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.d.ts +1 -1
  25. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +8 -4
  26. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  27. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.d.ts +1 -1
  28. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +8 -7
  29. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  30. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.d.ts +6 -0
  31. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js +54 -0
  32. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js.map +1 -0
  33. package/lib/programmers/functional/FunctionalIsParametersProgrammer.d.ts +7 -0
  34. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +79 -0
  35. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -0
  36. package/lib/programmers/functional/FunctionalIsReturnProgrammer.d.ts +10 -0
  37. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +71 -0
  38. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -0
  39. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.d.ts +10 -0
  40. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js +61 -0
  41. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js.map +1 -0
  42. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.d.ts +7 -0
  43. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +104 -0
  44. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -0
  45. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.d.ts +10 -0
  46. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +74 -0
  47. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -0
  48. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +3 -1
  49. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  50. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +3 -1
  51. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  52. package/lib/programmers/http/HttpAssertQueryProgrammer.js +3 -1
  53. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  54. package/lib/programmers/http/HttpFormDataProgrammer.js +3 -1
  55. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  56. package/lib/programmers/http/HttpHeadersProgrammer.js +3 -1
  57. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  58. package/lib/programmers/http/HttpIsFormDataProgrammer.js +3 -1
  59. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  60. package/lib/programmers/http/HttpIsHeadersProgrammer.js +3 -1
  61. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  62. package/lib/programmers/http/HttpIsQueryProgrammer.js +3 -1
  63. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  64. package/lib/programmers/http/HttpQueryProgrammer.js +3 -1
  65. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  66. package/lib/programmers/json/JsonAssertParseProgrammer.js +3 -1
  67. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  68. package/lib/programmers/json/JsonIsParseProgrammer.js +3 -1
  69. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  70. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +3 -1
  71. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  72. package/lib/programmers/misc/MiscCloneProgrammer.js +3 -1
  73. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  74. package/lib/programmers/misc/MiscIsCloneProgrammer.js +3 -1
  75. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  76. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +3 -1
  77. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  78. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +3 -1
  79. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  80. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +3 -1
  81. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  82. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
  83. package/lib/protobuf.d.ts +8 -0
  84. package/lib/protobuf.js.map +1 -1
  85. package/lib/transformers/CallExpressionTransformer.js +104 -12
  86. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  87. package/lib/utils/StringUtil/StringUtil.d.ts +1 -0
  88. package/lib/utils/StringUtil/StringUtil.js +7 -1
  89. package/lib/utils/StringUtil/StringUtil.js.map +1 -1
  90. package/package.json +2 -1
  91. package/src/functional.ts +542 -246
  92. package/src/http.ts +15 -6
  93. package/src/json.ts +17 -8
  94. package/src/misc.ts +18 -8
  95. package/src/module.ts +17 -0
  96. package/src/notations.ts +12 -0
  97. package/src/programmers/AssertProgrammer.ts +24 -22
  98. package/src/programmers/RandomProgrammer.ts +12 -4
  99. package/src/programmers/TypiaProgrammer.ts +1 -11
  100. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +64 -55
  101. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +13 -5
  102. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +10 -8
  103. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +45 -0
  104. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +78 -0
  105. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +91 -0
  106. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +91 -0
  107. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +212 -0
  108. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +115 -0
  109. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +12 -4
  110. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +12 -4
  111. package/src/programmers/http/HttpAssertQueryProgrammer.ts +12 -4
  112. package/src/programmers/http/HttpFormDataProgrammer.ts +12 -4
  113. package/src/programmers/http/HttpHeadersProgrammer.ts +12 -4
  114. package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -4
  115. package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -4
  116. package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -4
  117. package/src/programmers/http/HttpQueryProgrammer.ts +12 -4
  118. package/src/programmers/json/JsonAssertParseProgrammer.ts +12 -4
  119. package/src/programmers/json/JsonIsParseProgrammer.ts +12 -4
  120. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +12 -4
  121. package/src/programmers/misc/MiscCloneProgrammer.ts +12 -4
  122. package/src/programmers/misc/MiscIsCloneProgrammer.ts +12 -4
  123. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +12 -4
  124. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +12 -4
  125. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -4
  126. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +1 -1
  127. package/src/protobuf.ts +8 -0
  128. package/src/transformers/CallExpressionTransformer.ts +95 -12
  129. package/src/utils/StringUtil/StringUtil.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TypiaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypiaProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypiaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypiaProgrammer.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,12 @@ import ts from "typescript";
3
3
  import { IProject } from "../../transformers/IProject";
4
4
  export declare namespace FunctionalAssertFunctionProgrammer {
5
5
  const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.ArrowFunction;
6
- const errorFactory: (modulo: ts.LeftHandSideExpression) => (init: ts.Expression | undefined) => ts.VariableStatement;
7
- const hookPath: (replacer: string) => ts.ArrowFunction;
6
+ const errorFactoryWrapper: (modulo: ts.LeftHandSideExpression) => (paramters: readonly ts.ParameterDeclaration[]) => (init: ts.Expression | undefined) => {
7
+ name: string;
8
+ variable: ts.VariableStatement;
9
+ };
10
+ const hookPath: (props: {
11
+ wrapper: string;
12
+ replacer: string;
13
+ }) => ts.ArrowFunction;
8
14
  }
@@ -31,8 +31,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.FunctionalAssertFunctionProgrammer = void 0;
32
32
  var typescript_1 = __importDefault(require("typescript"));
33
33
  var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
34
- var StatementFactory_1 = require("../../factories/StatementFactory");
35
34
  var TypeFactory_1 = require("../../factories/TypeFactory");
35
+ var StringUtil_1 = require("../../utils/StringUtil");
36
+ var AssertProgrammer_1 = require("../AssertProgrammer");
36
37
  var FunctionalAssertParametersProgrammer_1 = require("./FunctionalAssertParametersProgrammer");
37
38
  var FunctionalAssertReturnProgrammer_1 = require("./FunctionalAssertReturnProgrammer");
38
39
  var FunctionalAssertFunctionProgrammer;
@@ -41,35 +42,40 @@ var FunctionalAssertFunctionProgrammer;
41
42
  return function (modulo) {
42
43
  return function (equals) {
43
44
  return function (expression, declaration, init) {
45
+ var wrapper = FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
44
46
  var _a = FunctionalAssertReturnProgrammer_1.FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration.type, declaration.parameters.map(function (p) {
45
47
  return typescript_1.default.factory.createIdentifier(p.name.getText());
46
- })), async = _a.async, returns = _a.returns;
48
+ }), wrapper.name), async = _a.async, returns = _a.returns;
47
49
  return typescript_1.default.factory.createArrowFunction(async
48
50
  ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
49
51
  : undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
50
- FunctionalAssertFunctionProgrammer.errorFactory(modulo)(init)
51
- ], __read(FunctionalAssertParametersProgrammer_1.FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters).map(typescript_1.default.factory.createExpressionStatement)), false), [
52
+ wrapper.variable
53
+ ], __read(FunctionalAssertParametersProgrammer_1.FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters, wrapper.name).map(typescript_1.default.factory.createExpressionStatement)), false), [
52
54
  returns,
53
55
  ], false)));
54
56
  };
55
57
  };
56
58
  };
57
59
  };
58
- FunctionalAssertFunctionProgrammer.errorFactory = function (modulo) { return function (init) {
59
- return StatementFactory_1.StatementFactory.constant("errorFactoryWrapper", init !== null && init !== void 0 ? init : typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createAsExpression(modulo, TypeFactory_1.TypeFactory.keyword("any")), "errorFactory"));
60
- }; };
61
- FunctionalAssertFunctionProgrammer.hookPath = function (replacer) {
62
- return typescript_1.default.factory.createArrowFunction(undefined, undefined, [
63
- IdentifierFactory_1.IdentifierFactory.parameter("p", typescript_1.default.factory.createFunctionTypeNode(undefined, [
64
- typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createIdentifier("p"), undefined, typescript_1.default.factory.createImportTypeNode(typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("typia")), undefined, typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier("TypeGuardError"), typescript_1.default.factory.createIdentifier("IProps")), undefined, false), undefined),
65
- ], typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("Error"), undefined))),
66
- ], undefined, undefined, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("errorFactoryWrapper"), undefined, [
60
+ FunctionalAssertFunctionProgrammer.errorFactoryWrapper = function (modulo) {
61
+ return function (paramters) {
62
+ return function (init) {
63
+ var name = StringUtil_1.StringUtil.escapeDuplicate(paramters.map(function (p) { return p.name.getText(); }))("errorFactoryWrapper");
64
+ var variable = typescript_1.default.factory.createVariableStatement(undefined, typescript_1.default.factory.createVariableDeclarationList([
65
+ typescript_1.default.factory.createVariableDeclaration(name, undefined, AssertProgrammer_1.AssertProgrammer.Guardian.type(), init !== null && init !== void 0 ? init : typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createAsExpression(modulo, TypeFactory_1.TypeFactory.keyword("any")), "errorFactory")),
66
+ ], typescript_1.default.NodeFlags.Const));
67
+ return { name: name, variable: variable };
68
+ };
69
+ };
70
+ };
71
+ FunctionalAssertFunctionProgrammer.hookPath = function (props) {
72
+ return typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("p")], undefined, undefined, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(props.wrapper), undefined, [
67
73
  typescript_1.default.factory.createObjectLiteralExpression([
68
74
  typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createIdentifier("p")),
69
- typescript_1.default.factory.createPropertyAssignment("path", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("p"), "path"), "replace"), undefined, [
75
+ typescript_1.default.factory.createPropertyAssignment("path", typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("p"), "path"), undefined, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("p"), "path"), "replace"), undefined, [
70
76
  typescript_1.default.factory.createStringLiteral("$input"),
71
- typescript_1.default.factory.createStringLiteral(replacer),
72
- ])),
77
+ typescript_1.default.factory.createStringLiteral(props.replacer),
78
+ ]), undefined, typescript_1.default.factory.createIdentifier("undefined"))),
73
79
  ]),
74
80
  ]));
75
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalAssertFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertFunctionProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FunctionalAssertFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertFunctionProgrammer.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ import ts from "typescript";
3
3
  import { IProject } from "../../transformers/IProject";
4
4
  export declare namespace FunctionalAssertParametersProgrammer {
5
5
  const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.ArrowFunction;
6
- const argumentExpressions: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (parameters: readonly ts.ParameterDeclaration[]) => ts.CallExpression[];
6
+ const argumentExpressions: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (parameters: readonly ts.ParameterDeclaration[], wrapper: string) => ts.CallExpression[];
7
7
  }
@@ -39,6 +39,7 @@ var FunctionalAssertParametersProgrammer;
39
39
  return function (modulo) {
40
40
  return function (equals) {
41
41
  return function (expression, declaration, init) {
42
+ var wrapper = FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
42
43
  var async = (function () {
43
44
  if (declaration.type === undefined)
44
45
  return false;
@@ -48,8 +49,8 @@ var FunctionalAssertParametersProgrammer;
48
49
  return typescript_1.default.factory.createArrowFunction(async
49
50
  ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
50
51
  : undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
51
- FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactory(modulo)(init)
52
- ], __read(FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters).map(typescript_1.default.factory.createExpressionStatement)), false), [
52
+ wrapper.variable
53
+ ], __read(FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters, wrapper.name).map(typescript_1.default.factory.createExpressionStatement)), false), [
53
54
  typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
54
55
  return typescript_1.default.factory.createIdentifier(p.name.getText());
55
56
  }))),
@@ -61,11 +62,14 @@ var FunctionalAssertParametersProgrammer;
61
62
  FunctionalAssertParametersProgrammer.argumentExpressions = function (project) {
62
63
  return function (modulo) {
63
64
  return function (equals) {
64
- return function (parameters) {
65
+ return function (parameters, wrapper) {
65
66
  return parameters.map(function (p, i) {
66
67
  return typescript_1.default.factory.createCallExpression(AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(p.type
67
68
  ? project.checker.getTypeFromTypeNode(p.type)
68
- : project.checker.getTypeFromTypeNode(TypeFactory_1.TypeFactory.keyword("any")), undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath("$input.parameters[".concat(i, "]"))), undefined, [typescript_1.default.factory.createIdentifier(p.name.getText())]);
69
+ : project.checker.getTypeFromTypeNode(TypeFactory_1.TypeFactory.keyword("any")), undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath({
70
+ wrapper: wrapper,
71
+ replacer: "$input.parameters[".concat(i, "]"),
72
+ })), undefined, [typescript_1.default.factory.createIdentifier(p.name.getText())]);
69
73
  });
70
74
  };
71
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalAssertParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertParametersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2DAA0D;AAI1D,wDAAuD;AACvD,2FAA0F;AAE1F,IAAiB,oCAAoC,CAkEpD;AAlED,WAAiB,oCAAoC;IACtC,0CAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC,EACnC,IAAoB;oBAEpB,IAAM,KAAK,GAAY,CAAC;wBACtB,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;4BAAE,OAAO,KAAK,CAAC;wBACjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACvD,WAAW,CAAC,IAAI,CACjB,CAAC;wBACF,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;oBAClE,CAAC,CAAC,EAAE,CAAC;oBACL,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CACnC,KAAK;wBACH,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;wBACzD,CAAC,CAAC,SAAS,EACb,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI,EAChB,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW;wBAElB,uEAAkC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;8BAC1D,qCAAA,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7C,WAAW,CAAC,UAAU,CACvB,CAAC,GAAG,CAAC,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC;wBAC3C,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,UAAU,EACV,SAAS,EACT,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC;4BAC3B,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAA7C,CAA6C,CAC9C,CACF,CACF;+BAEH,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YAvCD,CAuCC;QAxCD,CAwCC;IAzCD,CAyCC,CAAC;IAES,wDAAmB,GAC9B,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UAAC,UAA8C;oBAC7C,OAAA,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;wBAClB,OAAA,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,mCAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7C,CAAC,CAAC,IAAI;4BACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC7C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACnE,SAAS,EACT,uEAAkC,CAAC,QAAQ,CACzC,4BAAqB,CAAC,MAAG,CAC1B,CACF,EACD,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAChD;oBAZD,CAYC,CACF;gBAdD,CAcC;YAfH,CAeG;QAhBH,CAgBG;IAjBH,CAiBG,CAAC;AACR,CAAC,EAlEgB,oCAAoC,oDAApC,oCAAoC,QAkEpD"}
1
+ {"version":3,"file":"FunctionalAssertParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertParametersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2DAA0D;AAI1D,wDAAuD;AACvD,2FAA0F;AAE1F,IAAiB,oCAAoC,CA0EpD;AA1ED,WAAiB,oCAAoC;IACtC,0CAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC,EACnC,IAAoB;oBAEpB,IAAM,OAAO,GAAG,uEAAkC,CAAC,mBAAmB,CACpE,MAAM,CACP,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;oBAChC,IAAM,KAAK,GAAY,CAAC;wBACtB,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;4BAAE,OAAO,KAAK,CAAC;wBACjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACvD,WAAW,CAAC,IAAI,CACjB,CAAC;wBACF,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;oBAClE,CAAC,CAAC,EAAE,CAAC;oBACL,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CACnC,KAAK;wBACH,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;wBACzD,CAAC,CAAC,SAAS,EACb,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI,EAChB,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW;wBAElB,OAAO,CAAC,QAAQ;8BACb,qCAAA,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7C,WAAW,CAAC,UAAU,EACtB,OAAO,CAAC,IAAI,CACb,CAAC,GAAG,CAAC,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC;wBAC3C,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,UAAU,EACV,SAAS,EACT,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC;4BAC3B,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAA7C,CAA6C,CAC9C,CACF,CACF;+BAEH,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YA3CD,CA2CC;QA5CD,CA4CC;IA7CD,CA6CC,CAAC;IAES,wDAAmB,GAC9B,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAA8C,EAC9C,OAAe;oBAEf,OAAA,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;wBAClB,OAAA,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,mCAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7C,CAAC,CAAC,IAAI;4BACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC7C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACnE,SAAS,EACT,uEAAkC,CAAC,QAAQ,CAAC;4BAC1C,OAAO,SAAA;4BACP,QAAQ,EAAE,4BAAqB,CAAC,MAAG;yBACpC,CAAC,CACH,EACD,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAChD;oBAbD,CAaC,CACF;gBAfD,CAeC;YAnBH,CAmBG;QApBH,CAoBG;IArBH,CAqBG,CAAC;AACR,CAAC,EA1EgB,oCAAoC,oDAApC,oCAAoC,QA0EpD"}
@@ -3,7 +3,7 @@ import ts from "typescript";
3
3
  import { IProject } from "../../transformers/IProject";
4
4
  export declare namespace FunctionAssertReturnProgrammer {
5
5
  const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.ArrowFunction;
6
- const returnStatement: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, typeNode: ts.TypeNode | undefined, argumentExpressions: ts.Expression[]) => {
6
+ const returnStatement: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, typeNode: ts.TypeNode | undefined, argumentExpressions: ts.Expression[], wrapper: string) => {
7
7
  async: boolean;
8
8
  returns: ts.ReturnStatement;
9
9
  };
@@ -30,15 +30,13 @@ var FunctionAssertReturnProgrammer;
30
30
  return function (modulo) {
31
31
  return function (equals) {
32
32
  return function (expression, declaration, init) {
33
+ var wrapper = FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
33
34
  var _a = FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration.type, declaration.parameters.map(function (p) {
34
35
  return typescript_1.default.factory.createIdentifier(p.name.getText());
35
- })), async = _a.async, statement = _a.returns;
36
+ }), wrapper.name), async = _a.async, statement = _a.returns;
36
37
  return typescript_1.default.factory.createArrowFunction(async
37
38
  ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
38
- : undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock([
39
- FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactory(modulo)(init),
40
- statement,
41
- ], true));
39
+ : undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock([wrapper.variable, statement], true));
42
40
  };
43
41
  };
44
42
  };
@@ -46,7 +44,7 @@ var FunctionAssertReturnProgrammer;
46
44
  FunctionAssertReturnProgrammer.returnStatement = function (project) {
47
45
  return function (modulo) {
48
46
  return function (equals) {
49
- return function (expression, typeNode, argumentExpressions) {
47
+ return function (expression, typeNode, argumentExpressions, wrapper) {
50
48
  var _a = __read((function () {
51
49
  var type = project.checker.getTypeFromTypeNode(typeNode !== null && typeNode !== void 0 ? typeNode : TypeFactory_1.TypeFactory.keyword("any"));
52
50
  return type.isTypeParameter() && type.symbol.name === "Promise"
@@ -56,7 +54,10 @@ var FunctionAssertReturnProgrammer;
56
54
  var caller = typescript_1.default.factory.createCallExpression(expression, undefined, argumentExpressions);
57
55
  return {
58
56
  async: async,
59
- returns: typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(type, undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath("$input.return")), undefined, [async ? typescript_1.default.factory.createAwaitExpression(caller) : caller])),
57
+ returns: typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(type, undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath({
58
+ wrapper: wrapper,
59
+ replacer: "$input.return",
60
+ })), undefined, [async ? typescript_1.default.factory.createAwaitExpression(caller) : caller])),
60
61
  };
61
62
  };
62
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalAssertReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertReturnProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FunctionalAssertReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertReturnProgrammer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
2
+ import ts from "typescript";
3
+ import { IProject } from "../../transformers/IProject";
4
+ export declare namespace FunctionalIsFunctionProgrammer {
5
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
6
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ var __importDefault = (this && this.__importDefault) || function (mod) {
28
+ return (mod && mod.__esModule) ? mod : { "default": mod };
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.FunctionalIsFunctionProgrammer = void 0;
32
+ var typescript_1 = __importDefault(require("typescript"));
33
+ var FunctionalIsParametersProgrammer_1 = require("./FunctionalIsParametersProgrammer");
34
+ var FunctionalIsReturnProgrammer_1 = require("./FunctionalIsReturnProgrammer");
35
+ var FunctionalIsFunctionProgrammer;
36
+ (function (FunctionalIsFunctionProgrammer) {
37
+ FunctionalIsFunctionProgrammer.write = function (project) {
38
+ return function (modulo) {
39
+ return function (equals) {
40
+ return function (expression, declaration) {
41
+ var _a;
42
+ var _b = FunctionalIsReturnProgrammer_1.FunctionalIsReturnProgrammer.writeStatements(project)(modulo)(equals)(expression, declaration), async = _b.async, statements = _b.statements;
43
+ return typescript_1.default.factory.createArrowFunction(async
44
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
45
+ : undefined, undefined, declaration.parameters, typescript_1.default.factory.createUnionTypeNode([
46
+ (_a = declaration.type) !== null && _a !== void 0 ? _a : typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.AnyKeyword),
47
+ typescript_1.default.factory.createTypeReferenceNode("null"),
48
+ ]), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(FunctionalIsParametersProgrammer_1.FunctionalIsParametersProgrammer.writeStatements(project)(modulo)(equals)(declaration)), false), __read(statements), false), true));
49
+ };
50
+ };
51
+ };
52
+ };
53
+ })(FunctionalIsFunctionProgrammer || (exports.FunctionalIsFunctionProgrammer = FunctionalIsFunctionProgrammer = {}));
54
+ //# sourceMappingURL=FunctionalIsFunctionProgrammer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionalIsFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsFunctionProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAI5B,uFAAsF;AACtF,+EAA8E;AAE9E,IAAiB,8BAA8B,CAqC9C;AArCD,WAAiB,8BAA8B;IAChC,oCAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC;;oBAE7B,IAAA,KACJ,2DAA4B,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACnE,UAAU,EACV,WAAW,CACZ,EAJK,KAAK,WAAA,EAAE,UAAU,gBAItB,CAAC;oBACJ,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CACnC,KAAK;wBACH,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;wBACzD,CAAC,CAAC,SAAS,EACb,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBAC7B,MAAA,WAAW,CAAC,IAAI,mCACd,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,oBAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBAC5D,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;qBAC3C,CAAC,EACF,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,wCAEf,mEAAgC,CAAC,eAAe,CAAC,OAAO,CAAC,CAC1D,MAAM,CACP,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,kBACnB,UAAU,WAEf,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YA/BD,CA+BC;QAhCD,CAgCC;IAjCD,CAiCC,CAAC;AACN,CAAC,EArCgB,8BAA8B,8CAA9B,8BAA8B,QAqC9C"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
2
+ import ts from "typescript";
3
+ import { IProject } from "../../transformers/IProject";
4
+ export declare namespace FunctionalIsParametersProgrammer {
5
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
6
+ const writeStatements: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (declaration: ts.FunctionDeclaration) => ts.Statement[];
7
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ var __importDefault = (this && this.__importDefault) || function (mod) {
28
+ return (mod && mod.__esModule) ? mod : { "default": mod };
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.FunctionalIsParametersProgrammer = void 0;
32
+ var typescript_1 = __importDefault(require("typescript"));
33
+ var TypeFactory_1 = require("../../factories/TypeFactory");
34
+ var IsProgrammer_1 = require("../IsProgrammer");
35
+ var FunctionalIsParametersProgrammer;
36
+ (function (FunctionalIsParametersProgrammer) {
37
+ FunctionalIsParametersProgrammer.write = function (project) {
38
+ return function (modulo) {
39
+ return function (equals) {
40
+ return function (expression, declaration) {
41
+ var _a;
42
+ var async = (function () {
43
+ if (declaration.type === undefined)
44
+ return false;
45
+ var type = project.checker.getTypeFromTypeNode(declaration.type);
46
+ return type.isTypeParameter() && type.symbol.name === "Promise";
47
+ })();
48
+ return typescript_1.default.factory.createArrowFunction(async
49
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
50
+ : undefined, undefined, declaration.parameters, typescript_1.default.factory.createUnionTypeNode([
51
+ (_a = declaration.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"),
52
+ typescript_1.default.factory.createTypeReferenceNode("null"),
53
+ ]), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(FunctionalIsParametersProgrammer.writeStatements(project)(modulo)(equals)(declaration)), false), [
54
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
55
+ return typescript_1.default.factory.createIdentifier(p.name.getText());
56
+ }))),
57
+ ], false), true));
58
+ };
59
+ };
60
+ };
61
+ };
62
+ FunctionalIsParametersProgrammer.writeStatements = function (project) {
63
+ return function (modulo) {
64
+ return function (equals) {
65
+ return function (declaration) {
66
+ return declaration.parameters
67
+ .map(function (p) {
68
+ var _a;
69
+ return [
70
+ typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createFalse(), typescript_1.default.factory.createCallExpression(IsProgrammer_1.IsProgrammer.write(project)(modulo)(equals)(project.checker.getTypeFromTypeNode((_a = p.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"))), undefined, [typescript_1.default.factory.createIdentifier(p.name.getText())])), typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createNull())),
71
+ ];
72
+ })
73
+ .flat();
74
+ };
75
+ };
76
+ };
77
+ };
78
+ })(FunctionalIsParametersProgrammer || (exports.FunctionalIsParametersProgrammer = FunctionalIsParametersProgrammer = {}));
79
+ //# sourceMappingURL=FunctionalIsParametersProgrammer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionalIsParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsParametersProgrammer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
2
+ import ts from "typescript";
3
+ import { IProject } from "../../transformers/IProject";
4
+ export declare namespace FunctionalIsReturnProgrammer {
5
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
6
+ const writeStatements: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => {
7
+ async: boolean;
8
+ statements: ts.Statement[];
9
+ };
10
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.FunctionalIsReturnProgrammer = void 0;
23
+ var typescript_1 = __importDefault(require("typescript"));
24
+ var StatementFactory_1 = require("../../factories/StatementFactory");
25
+ var TypeFactory_1 = require("../../factories/TypeFactory");
26
+ var StringUtil_1 = require("../../utils/StringUtil");
27
+ var IsProgrammer_1 = require("../IsProgrammer");
28
+ var FunctionalIsReturnProgrammer;
29
+ (function (FunctionalIsReturnProgrammer) {
30
+ FunctionalIsReturnProgrammer.write = function (project) {
31
+ return function (modulo) {
32
+ return function (equals) {
33
+ return function (expression, declaration) {
34
+ var _a;
35
+ var _b = FunctionalIsReturnProgrammer.writeStatements(project)(modulo)(equals)(expression, declaration), async = _b.async, statements = _b.statements;
36
+ return typescript_1.default.factory.createArrowFunction(async
37
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
38
+ : undefined, undefined, declaration.parameters, typescript_1.default.factory.createUnionTypeNode([
39
+ (_a = declaration.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"),
40
+ typescript_1.default.factory.createTypeReferenceNode("null"),
41
+ ]), undefined, typescript_1.default.factory.createBlock(statements, true));
42
+ };
43
+ };
44
+ };
45
+ };
46
+ FunctionalIsReturnProgrammer.writeStatements = function (project) {
47
+ return function (modulo) {
48
+ return function (equals) {
49
+ return function (expression, declaration) {
50
+ var _a = __read((function () {
51
+ var _a;
52
+ var type = project.checker.getTypeFromTypeNode((_a = declaration.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"));
53
+ return type.isTypeParameter() && type.symbol.name === "Promise"
54
+ ? [type.aliasTypeArguments[0], true]
55
+ : [type, false];
56
+ })(), 2), type = _a[0], async = _a[1];
57
+ var caller = typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
58
+ return typescript_1.default.factory.createIdentifier(p.name.getText());
59
+ }));
60
+ var name = StringUtil_1.StringUtil.escapeDuplicate(declaration.parameters.map(function (p) { return p.name.getText(); }))("result");
61
+ var statements = [
62
+ StatementFactory_1.StatementFactory.constant(name, async ? typescript_1.default.factory.createAwaitExpression(caller) : caller),
63
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createCallExpression(IsProgrammer_1.IsProgrammer.write(project)(modulo)(equals)(type), undefined, [typescript_1.default.factory.createIdentifier(name)]), undefined, typescript_1.default.factory.createIdentifier(name), undefined, typescript_1.default.factory.createNull())),
64
+ ];
65
+ return { async: async, statements: statements };
66
+ };
67
+ };
68
+ };
69
+ };
70
+ })(FunctionalIsReturnProgrammer || (exports.FunctionalIsReturnProgrammer = FunctionalIsReturnProgrammer = {}));
71
+ //# sourceMappingURL=FunctionalIsReturnProgrammer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionalIsReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsReturnProgrammer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="ts-expose-internals/typescript" />
2
+ import ts from "typescript";
3
+ import { IProject } from "../../transformers/IProject";
4
+ export declare namespace FunctionalValidateFunctionProgrammer {
5
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
6
+ const hookErrors: (props: {
7
+ expression: ts.Expression;
8
+ replacer: ts.Expression;
9
+ }) => ts.CallExpression;
10
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ var __importDefault = (this && this.__importDefault) || function (mod) {
28
+ return (mod && mod.__esModule) ? mod : { "default": mod };
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.FunctionalValidateFunctionProgrammer = void 0;
32
+ var typescript_1 = __importDefault(require("typescript"));
33
+ var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
34
+ var FunctionalValidateParametersProgrammer_1 = require("./FunctionalValidateParametersProgrammer");
35
+ var FunctionalValidateReturnProgrammer_1 = require("./FunctionalValidateReturnProgrammer");
36
+ var FunctionalValidateFunctionProgrammer;
37
+ (function (FunctionalValidateFunctionProgrammer) {
38
+ FunctionalValidateFunctionProgrammer.write = function (project) {
39
+ return function (modulo) {
40
+ return function (equals) {
41
+ return function (expression, declaration) {
42
+ var _a = FunctionalValidateReturnProgrammer_1.FunctionalValidateReturnProgrammer.writeStatements(project)(modulo)(equals)(expression, declaration), async = _a.async, statements = _a.statements;
43
+ return typescript_1.default.factory.createArrowFunction(async
44
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
45
+ : undefined, undefined, declaration.parameters, declaration.type
46
+ ? typescript_1.default.factory.createImportTypeNode(typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("typia")), undefined, typescript_1.default.factory.createIdentifier("IValidation"), [declaration.type])
47
+ : undefined, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(FunctionalValidateParametersProgrammer_1.FunctionalValidateParametersProgrammer.writeStatements(project)(modulo)(equals)(declaration)), false), __read(statements), false), true));
48
+ };
49
+ };
50
+ };
51
+ };
52
+ FunctionalValidateFunctionProgrammer.hookErrors = function (props) {
53
+ return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(props.expression, "map"), undefined, [
54
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("error")], undefined, undefined, typescript_1.default.factory.createObjectLiteralExpression([
55
+ typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createIdentifier("error")),
56
+ typescript_1.default.factory.createPropertyAssignment("path", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("error"), "path"), "replace"), undefined, [typescript_1.default.factory.createStringLiteral("$input"), props.replacer])),
57
+ ], true)),
58
+ ]);
59
+ };
60
+ })(FunctionalValidateFunctionProgrammer || (exports.FunctionalValidateFunctionProgrammer = FunctionalValidateFunctionProgrammer = {}));
61
+ //# sourceMappingURL=FunctionalValidateFunctionProgrammer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionalValidateFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalValidateFunctionProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AAItE,mGAAkG;AAClG,2FAA0F;AAE1F,IAAiB,oCAAoC,CAiFpD;AAjFD,WAAiB,oCAAoC;IACtC,0CAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC;oBAE7B,IAAA,KACJ,uEAAkC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CACjE,MAAM,CACP,CAAC,UAAU,EAAE,WAAW,CAAC,EAHpB,KAAK,WAAA,EAAE,UAAU,gBAGG,CAAC;oBAC7B,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CACnC,KAAK;wBACH,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;wBACzD,CAAC,CAAC,SAAS,EACb,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI;wBACd,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CACxC,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAC1C,CAAC,WAAW,CAAC,IAAI,CAAC,CACnB;wBACH,CAAC,CAAC,SAAS,EACb,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,wCAEf,+EAAsC,CAAC,eAAe,CAAC,OAAO,CAAC,CAChE,MAAM,CACP,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,kBACnB,UAAU,WAEf,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YAnCD,CAmCC;QApCD,CAoCC;IArCD,CAqCC,CAAC;IAES,+CAAU,GAAG,UAAC,KAG1B;QACC,OAAA,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAClE,SAAS,EACT;YACE,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,SAAS,EACT,SAAS,EACT,CAAC,qCAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EACtC,SAAS,EACT,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACtC;gBACE,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CACrC;gBACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,MAAM,EACN,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EACpC,MAAM,CACP,EACD,SAAS,CACV,EACD,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAC3D,CACF;aACF,EACD,IAAI,CACL,CACF;SACF,CACF;IAlCD,CAkCC,CAAC;AACN,CAAC,EAjFgB,oCAAoC,oDAApC,oCAAoC,QAiFpD"}