typia 6.7.0-dev.20240803-4 → 6.7.0-dev.20240803-5

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 (80) hide show
  1. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.d.ts +1 -1
  2. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +11 -7
  3. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
  4. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.d.ts +5 -2
  5. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +22 -14
  6. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  7. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.d.ts +4 -3
  8. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +43 -9
  9. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
  10. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.d.ts +1 -1
  11. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js +8 -4
  12. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js.map +1 -1
  13. package/lib/programmers/functional/FunctionalIsParametersProgrammer.d.ts +5 -2
  14. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +22 -16
  15. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -1
  16. package/lib/programmers/functional/FunctionalIsReturnProgrammer.d.ts +3 -2
  17. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +43 -10
  18. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -1
  19. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.d.ts +1 -1
  20. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js +8 -4
  21. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js.map +1 -1
  22. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.d.ts +5 -2
  23. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +48 -30
  24. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -1
  25. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.d.ts +3 -2
  26. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +44 -14
  27. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -1
  28. package/lib/programmers/http/HttpAssertHeadersProgrammer.d.ts +10 -1
  29. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +58 -14
  30. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  31. package/lib/programmers/http/HttpAssertQueryProgrammer.d.ts +11 -1
  32. package/lib/programmers/http/HttpAssertQueryProgrammer.js +59 -14
  33. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  34. package/lib/programmers/http/HttpFormDataProgrammer.js +3 -1
  35. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  36. package/lib/programmers/http/HttpHeadersProgrammer.d.ts +9 -1
  37. package/lib/programmers/http/HttpHeadersProgrammer.js +48 -29
  38. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  39. package/lib/programmers/http/HttpIsFormDataProgrammer.d.ts +9 -1
  40. package/lib/programmers/http/HttpIsFormDataProgrammer.js +59 -15
  41. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
  42. package/lib/programmers/http/HttpIsHeadersProgrammer.d.ts +9 -1
  43. package/lib/programmers/http/HttpIsHeadersProgrammer.js +59 -15
  44. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  45. package/lib/programmers/http/HttpIsQueryProgrammer.d.ts +10 -1
  46. package/lib/programmers/http/HttpIsQueryProgrammer.js +60 -15
  47. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  48. package/lib/programmers/http/HttpQueryProgrammer.d.ts +10 -1
  49. package/lib/programmers/http/HttpQueryProgrammer.js +38 -27
  50. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  51. package/lib/programmers/http/HttpValidateFormDataProgrammer.d.ts +10 -1
  52. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +57 -9
  53. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -1
  54. package/lib/programmers/http/HttpValidateHeadersProgrammer.d.ts +10 -1
  55. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +57 -9
  56. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  57. package/lib/programmers/http/HttpValidateQueryProgrammer.d.ts +11 -1
  58. package/lib/programmers/http/HttpValidateQueryProgrammer.js +58 -9
  59. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  60. package/package.json +1 -1
  61. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +32 -21
  62. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +48 -21
  63. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +40 -19
  64. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +27 -16
  65. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +52 -24
  66. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +52 -30
  67. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +26 -16
  68. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +164 -100
  69. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +60 -41
  70. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +68 -66
  71. package/src/programmers/http/HttpAssertQueryProgrammer.ts +70 -64
  72. package/src/programmers/http/HttpFormDataProgrammer.ts +3 -1
  73. package/src/programmers/http/HttpHeadersProgrammer.ts +52 -30
  74. package/src/programmers/http/HttpIsFormDataProgrammer.ts +81 -69
  75. package/src/programmers/http/HttpIsHeadersProgrammer.ts +81 -71
  76. package/src/programmers/http/HttpIsQueryProgrammer.ts +83 -69
  77. package/src/programmers/http/HttpQueryProgrammer.ts +54 -30
  78. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +66 -56
  79. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +66 -58
  80. package/src/programmers/http/HttpValidateQueryProgrammer.ts +68 -56
@@ -1,7 +1,7 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace FunctionalAssertFunctionProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.ArrowFunction;
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.CallExpression;
5
5
  const errorFactoryWrapper: (modulo: ts.LeftHandSideExpression) => (paramters: readonly ts.ParameterDeclaration[]) => (init: ts.Expression | undefined) => {
6
6
  name: string;
7
7
  variable: ts.VariableStatement;
@@ -30,6 +30,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.FunctionalAssertFunctionProgrammer = void 0;
32
32
  var typescript_1 = __importDefault(require("typescript"));
33
+ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
33
34
  var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
34
35
  var TypeFactory_1 = require("../../factories/TypeFactory");
35
36
  var StringUtil_1 = require("../../utils/StringUtil");
@@ -43,14 +44,17 @@ var FunctionalAssertFunctionProgrammer;
43
44
  return function (equals) {
44
45
  return function (expression, declaration, init) {
45
46
  var wrapper = FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
46
- var _a = FunctionalAssertReturnProgrammer_1.FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration, wrapper.name), async = _a.async, returns = _a.returns;
47
- return typescript_1.default.factory.createArrowFunction(async
48
- ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
49
- : undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
47
+ var p = FunctionalAssertParametersProgrammer_1.FunctionalAssertParametersProgrammer.decompose(project)(modulo)(equals)(declaration.parameters, wrapper.name);
48
+ var r = FunctionalAssertReturnProgrammer_1.FunctionAssertReturnProgrammer.decompose(project)(modulo)(equals)(expression, declaration, wrapper.name);
49
+ return ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock(__spreadArray(__spreadArray(__spreadArray([
50
50
  wrapper.variable
51
- ], __read(FunctionalAssertParametersProgrammer_1.FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters, wrapper.name).map(typescript_1.default.factory.createExpressionStatement)), false), [
52
- returns,
53
- ], false)));
51
+ ], __read(p.functions), false), __read(r.functions), false), [
52
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createArrowFunction(r.async
53
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
54
+ : undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(p.expressions.map(typescript_1.default.factory.createExpressionStatement)), false), [
55
+ typescript_1.default.factory.createReturnStatement(r.value),
56
+ ], false)))),
57
+ ], false), true));
54
58
  };
55
59
  };
56
60
  };
@@ -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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"}
@@ -1,6 +1,9 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace FunctionalAssertParametersProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.ArrowFunction;
5
- const argumentExpressions: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (parameters: readonly ts.ParameterDeclaration[], wrapper: string) => ts.CallExpression[];
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.CallExpression;
5
+ const decompose: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (parameters: readonly ts.ParameterDeclaration[], wrapper: string) => {
6
+ functions: ts.Statement[];
7
+ expressions: ts.Expression[];
8
+ };
6
9
  }
@@ -30,6 +30,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.FunctionalAssertParametersProgrammer = void 0;
32
32
  var typescript_1 = __importDefault(require("typescript"));
33
+ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
34
+ var StatementFactory_1 = require("../../factories/StatementFactory");
33
35
  var TypeFactory_1 = require("../../factories/TypeFactory");
34
36
  var AssertProgrammer_1 = require("../AssertProgrammer");
35
37
  var FunctionalAssertFunctionProgrammer_1 = require("./FunctionalAssertFunctionProgrammer");
@@ -42,32 +44,38 @@ var FunctionalAssertParametersProgrammer;
42
44
  return function (expression, declaration, init) {
43
45
  var wrapper = FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
44
46
  var async = FunctionalGeneralProgrammer_1.FunctionalGeneralProgrammer.getReturnType(project.checker)(declaration).async;
45
- return typescript_1.default.factory.createArrowFunction(async
46
- ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
47
- : undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
47
+ var result = FunctionalAssertParametersProgrammer.decompose(project)(modulo)(equals)(declaration.parameters, wrapper.name);
48
+ return ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
48
49
  wrapper.variable
49
- ], __read(FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters, wrapper.name).map(typescript_1.default.factory.createExpressionStatement)), false), [
50
- typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
51
- return typescript_1.default.factory.createIdentifier(p.name.getText());
52
- }))),
50
+ ], __read(result.functions), false), [
51
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createArrowFunction(async
52
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
53
+ : undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(result.expressions.map(typescript_1.default.factory.createExpressionStatement)), 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))),
53
58
  ], false), true));
54
59
  };
55
60
  };
56
61
  };
57
62
  };
58
- FunctionalAssertParametersProgrammer.argumentExpressions = function (project) {
63
+ FunctionalAssertParametersProgrammer.decompose = function (project) {
59
64
  return function (modulo) {
60
65
  return function (equals) {
61
- return function (parameters, wrapper) {
62
- return parameters.map(function (p, i) {
63
- return typescript_1.default.factory.createCallExpression(AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(p.type
66
+ return function (parameters, wrapper) { return ({
67
+ functions: parameters.map(function (p, i) {
68
+ return StatementFactory_1.StatementFactory.constant("__assert_param_".concat(i), AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(p.type
64
69
  ? project.checker.getTypeFromTypeNode(p.type)
65
70
  : project.checker.getTypeFromTypeNode(TypeFactory_1.TypeFactory.keyword("any")), undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath({
66
71
  wrapper: wrapper,
67
72
  replacer: "$input.parameters[".concat(i, "]"),
68
- })), undefined, [typescript_1.default.factory.createIdentifier(p.name.getText())]);
69
- });
70
- };
73
+ })));
74
+ }),
75
+ expressions: parameters.map(function (p, i) {
76
+ return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("__assert_param_".concat(i)), undefined, [typescript_1.default.factory.createIdentifier(p.name.getText())]);
77
+ }),
78
+ }); };
71
79
  };
72
80
  };
73
81
  };
@@ -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;AAC1F,sFAAqF;AAErF,IAAiB,oCAAoC,CAsEpD;AAtED,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;oBACxB,IAAA,KAAK,GAAK,yDAA2B,CAAC,aAAa,CACzD,OAAO,CAAC,OAAO,CAChB,CAAC,WAAW,CAAC,MAFD,CAEE;oBACf,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;YAvCD,CAuCC;QAxCD,CAwCC;IAzCD,CAyCC,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,EAtEgB,oCAAoC,oDAApC,oCAAoC,QAsEpD"}
1
+ {"version":3,"file":"FunctionalAssertParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertParametersProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace FunctionAssertReturnProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.ArrowFunction;
5
- const returnStatement: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, wrapper: string) => {
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.CallExpression;
5
+ const decompose: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, wrapper: string) => {
6
6
  async: boolean;
7
- returns: ts.ReturnStatement;
7
+ functions: ts.Statement[];
8
+ value: ts.Expression;
8
9
  };
9
10
  }
@@ -1,10 +1,37 @@
1
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
+ };
2
27
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
28
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
29
  };
5
30
  Object.defineProperty(exports, "__esModule", { value: true });
6
31
  exports.FunctionAssertReturnProgrammer = void 0;
7
32
  var typescript_1 = __importDefault(require("typescript"));
33
+ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
34
+ var StatementFactory_1 = require("../../factories/StatementFactory");
8
35
  var AssertProgrammer_1 = require("../AssertProgrammer");
9
36
  var FunctionalAssertFunctionProgrammer_1 = require("./FunctionalAssertFunctionProgrammer");
10
37
  var FunctionalGeneralProgrammer_1 = require("./internal/FunctionalGeneralProgrammer");
@@ -15,15 +42,19 @@ var FunctionAssertReturnProgrammer;
15
42
  return function (equals) {
16
43
  return function (expression, declaration, init) {
17
44
  var wrapper = FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
18
- var _a = FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration, wrapper.name), async = _a.async, statement = _a.returns;
19
- return typescript_1.default.factory.createArrowFunction(async
20
- ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
21
- : undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock([wrapper.variable, statement], true));
45
+ var result = FunctionAssertReturnProgrammer.decompose(project)(modulo)(equals)(expression, declaration, wrapper.name);
46
+ return ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
47
+ wrapper.variable
48
+ ], __read(result.functions), false), [
49
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createArrowFunction(result.async
50
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
51
+ : undefined, undefined, declaration.parameters, declaration.type, undefined, result.value)),
52
+ ], false), true));
22
53
  };
23
54
  };
24
55
  };
25
56
  };
26
- FunctionAssertReturnProgrammer.returnStatement = function (project) {
57
+ FunctionAssertReturnProgrammer.decompose = function (project) {
27
58
  return function (modulo) {
28
59
  return function (equals) {
29
60
  return function (expression, declaration, wrapper) {
@@ -33,10 +64,13 @@ var FunctionAssertReturnProgrammer;
33
64
  }));
34
65
  return {
35
66
  async: async,
36
- returns: typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(type, undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath({
37
- wrapper: wrapper,
38
- replacer: "$input.return",
39
- })), undefined, [async ? typescript_1.default.factory.createAwaitExpression(caller) : caller])),
67
+ functions: [
68
+ StatementFactory_1.StatementFactory.constant("__assert_return", AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(type, undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath({
69
+ wrapper: wrapper,
70
+ replacer: "$input.return",
71
+ }))),
72
+ ],
73
+ value: typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("__assert_return"), undefined, [async ? typescript_1.default.factory.createAwaitExpression(caller) : caller]),
40
74
  };
41
75
  };
42
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalAssertReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertReturnProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAI5B,wDAAuD;AACvD,2FAA0F;AAC1F,sFAAqF;AAErF,IAAiB,8BAA8B,CAoE9C;AApED,WAAiB,8BAA8B;IAChC,oCAAK,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;oBAC1B,IAAA,KAAgC,+BAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CACpE,MAAM,CACP,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,EAFhC,KAAK,WAAA,EAAW,SAAS,aAEO,CAAC;oBACzC,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,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAC5D,CAAC;gBACJ,CAAC;YArBD,CAqBC;QAtBD,CAsBC;IAvBD,CAuBC,CAAC;IAES,8CAAe,GAC1B,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC,EACnC,OAAe;oBAKT,IAAA,KAAkB,yDAA2B,CAAC,aAAa,CAC/D,OAAO,CAAC,OAAO,CAChB,CAAC,WAAW,CAAC,EAFN,IAAI,UAAA,EAAE,KAAK,WAEL,CAAC;oBACf,IAAM,MAAM,GAAsB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC/D,UAAU,EACV,SAAS,EACT,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC;wBAC3B,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAA7C,CAA6C,CAC9C,CACF,CAAC;oBACF,OAAO;wBACL,KAAK,OAAA;wBACL,OAAO,EAAE,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CACvC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,mCAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7C,IAAI,EACJ,SAAS,EACT,uEAAkC,CAAC,QAAQ,CAAC;4BAC1C,OAAO,SAAA;4BACP,QAAQ,EAAE,eAAe;yBAC1B,CAAC,CACH,EACD,SAAS,EACT,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAC5D,CACF;qBACF,CAAC;gBACJ,CAAC;YAnCD,CAmCC;QApCD,CAoCC;IArCD,CAqCC,CAAC;AACN,CAAC,EApEgB,8BAA8B,8CAA9B,8BAA8B,QAoE9C"}
1
+ {"version":3,"file":"FunctionalAssertReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertReturnProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,qEAAoE;AAIpE,wDAAuD;AACvD,2FAA0F;AAC1F,sFAAqF;AAErF,IAAiB,8BAA8B,CAsF9C;AAtFD,WAAiB,8BAA8B;IAChC,oCAAK,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,MAAM,GAAG,+BAAA,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC/C,UAAU,EACV,WAAW,EACX,OAAO,CAAC,IAAI,CACb,CAAC;oBACF,OAAO,qCAAiB,CAAC,QAAQ,CAC/B,oBAAE,CAAC,OAAO,CAAC,WAAW;wBAElB,OAAO,CAAC,QAAQ;8BACb,MAAM,CAAC,SAAS;wBACnB,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,MAAM,CAAC,KAAK;4BACV,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;4BACzD,CAAC,CAAC,SAAS,EACb,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI,EAChB,SAAS,EACT,MAAM,CAAC,KAAK,CACb,CACF;+BAEH,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YAlCD,CAkCC;QAnCD,CAmCC;IApCD,CAoCC,CAAC;IAES,wCAAS,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC,EACnC,OAAe;oBAMT,IAAA,KAAkB,yDAA2B,CAAC,aAAa,CAC/D,OAAO,CAAC,OAAO,CAChB,CAAC,WAAW,CAAC,EAFN,IAAI,UAAA,EAAE,KAAK,WAEL,CAAC;oBACf,IAAM,MAAM,GAAsB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC/D,UAAU,EACV,SAAS,EACT,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC;wBAC3B,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAA7C,CAA6C,CAC9C,CACF,CAAC;oBACF,OAAO;wBACL,KAAK,OAAA;wBACL,SAAS,EAAE;4BACT,mCAAgB,CAAC,QAAQ,CACvB,iBAAiB,EACjB,mCAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7C,IAAI,EACJ,SAAS,EACT,uEAAkC,CAAC,QAAQ,CAAC;gCAC1C,OAAO,SAAA;gCACP,QAAQ,EAAE,eAAe;6BAC1B,CAAC,CACH,CACF;yBACF;wBACD,KAAK,EAAE,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CACpC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAC9C,SAAS,EACT,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAC5D;qBACF,CAAC;gBACJ,CAAC;YAxCD,CAwCC;QAzCD,CAyCC;IA1CD,CA0CC,CAAC;AACN,CAAC,EAtFgB,8BAA8B,8CAA9B,8BAA8B,QAsF9C"}
@@ -1,6 +1,6 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace FunctionalIsFunctionProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.CallExpression;
5
5
  const getReturnTypeNode: (declaration: ts.FunctionDeclaration, async: boolean) => ts.TypeNode | undefined;
6
6
  }
@@ -30,6 +30,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.FunctionalIsFunctionProgrammer = void 0;
32
32
  var typescript_1 = __importDefault(require("typescript"));
33
+ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
33
34
  var FunctionalIsParametersProgrammer_1 = require("./FunctionalIsParametersProgrammer");
34
35
  var FunctionalIsReturnProgrammer_1 = require("./FunctionalIsReturnProgrammer");
35
36
  var FunctionalIsFunctionProgrammer;
@@ -38,10 +39,13 @@ var FunctionalIsFunctionProgrammer;
38
39
  return function (modulo) {
39
40
  return function (equals) {
40
41
  return function (expression, declaration) {
41
- var _a = FunctionalIsReturnProgrammer_1.FunctionalIsReturnProgrammer.writeStatements(project)(modulo)(equals)(expression, declaration), async = _a.async, statements = _a.statements;
42
- return typescript_1.default.factory.createArrowFunction(async
43
- ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
44
- : undefined, undefined, declaration.parameters, FunctionalIsFunctionProgrammer.getReturnTypeNode(declaration, async), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(FunctionalIsParametersProgrammer_1.FunctionalIsParametersProgrammer.writeStatements(project)(modulo)(equals)(declaration)), false), __read(statements), false), true));
42
+ var p = FunctionalIsParametersProgrammer_1.FunctionalIsParametersProgrammer.decompose(project)(modulo)(equals)(declaration);
43
+ var r = FunctionalIsReturnProgrammer_1.FunctionalIsReturnProgrammer.decompose(project)(modulo)(equals)(expression, declaration);
44
+ return ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock(__spreadArray(__spreadArray(__spreadArray([], __read(p.functions), false), __read(r.functions), false), [
45
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createArrowFunction(r.async
46
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
47
+ : undefined, undefined, declaration.parameters, FunctionalIsFunctionProgrammer.getReturnTypeNode(declaration, r.async), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(p.statements), false), __read(r.statements), false), true))),
48
+ ], false), true));
45
49
  };
46
50
  };
47
51
  };
@@ -1 +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,CAqD9C;AArDD,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,+BAAA,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,EACrC,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;YA3BD,CA2BC;QA5BD,CA4BC;IA7BD,CA6BC,CAAC;IAES,gDAAiB,GAAG,UAC/B,WAAmC,EACnC,KAAc;;QAEd,OAAA,WAAW,CAAC,IAAI;YACd,CAAC,CAAC,KAAK;gBACL,CAAC,CAAC,CAAC,CAAC,CAAA,MAAC,WAAW,CAAC,IAA8B,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;oBAChE,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE;wBAC5C,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;4BAC5B,WAAW,CAAC,IAA8B,CAAC,aAAc,CAAC,CAAC,CAAE;4BAC9D,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;yBAC3C,CAAC;qBACH,CAAC;oBACJ,CAAC,CAAC,SAAS;gBACb,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;oBAC7B,WAAW,CAAC,IAAI;oBAChB,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;iBAC3C,CAAC;YACN,CAAC,CAAC,SAAS,CAAA;KAAA,CAAC;AAClB,CAAC,EArDgB,8BAA8B,8CAA9B,8BAA8B,QAqD9C"}
1
+ {"version":3,"file":"FunctionalIsFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsFunctionProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AAItE,uFAAsF;AACtF,+EAA8E;AAE9E,IAAiB,8BAA8B,CA8D9C;AA9DD,WAAiB,8BAA8B;IAChC,oCAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC;oBAEnC,IAAM,CAAC,GACL,mEAAgC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACjE,WAAW,CACZ,CAAC;oBACJ,IAAM,CAAC,GAAG,2DAA4B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACvE,UAAU,EACV,WAAW,CACZ,CAAC;oBACF,OAAO,qCAAiB,CAAC,QAAQ,CAC/B,oBAAE,CAAC,OAAO,CAAC,WAAW,sDAEf,CAAC,CAAC,SAAS,kBACX,CAAC,CAAC,SAAS;wBACd,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,CAAC,CAAC,KAAK;4BACL,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;4BACzD,CAAC,CAAC,SAAS,EACb,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,+BAAA,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,EACvC,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,wCAChB,CAAC,CAAC,UAAU,kBAAK,CAAC,CAAC,UAAU,WACjC,IAAI,CACL,CACF,CACF;+BAEH,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YApCD,CAoCC;QArCD,CAqCC;IAtCD,CAsCC,CAAC;IAES,gDAAiB,GAAG,UAC/B,WAAmC,EACnC,KAAc;;QAEd,OAAA,WAAW,CAAC,IAAI;YACd,CAAC,CAAC,KAAK;gBACL,CAAC,CAAC,CAAC,CAAC,CAAA,MAAC,WAAW,CAAC,IAA8B,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAA;oBAChE,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE;wBAC5C,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;4BAC5B,WAAW,CAAC,IAA8B,CAAC,aAAc,CAAC,CAAC,CAAE;4BAC9D,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;yBAC3C,CAAC;qBACH,CAAC;oBACJ,CAAC,CAAC,SAAS;gBACb,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;oBAC7B,WAAW,CAAC,IAAI;oBAChB,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;iBAC3C,CAAC;YACN,CAAC,CAAC,SAAS,CAAA;KAAA,CAAC;AAClB,CAAC,EA9DgB,8BAA8B,8CAA9B,8BAA8B,QA8D9C"}
@@ -1,6 +1,9 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace FunctionalIsParametersProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
5
- const writeStatements: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (declaration: ts.FunctionDeclaration) => ts.Statement[];
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.CallExpression;
5
+ const decompose: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (declaration: ts.FunctionDeclaration) => {
6
+ functions: ts.Statement[];
7
+ statements: ts.Statement[];
8
+ };
6
9
  }
@@ -30,6 +30,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.FunctionalIsParametersProgrammer = void 0;
32
32
  var typescript_1 = __importDefault(require("typescript"));
33
+ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
34
+ var StatementFactory_1 = require("../../factories/StatementFactory");
33
35
  var TypeFactory_1 = require("../../factories/TypeFactory");
34
36
  var IsProgrammer_1 = require("../IsProgrammer");
35
37
  var FunctionalIsFunctionProgrammer_1 = require("./FunctionalIsFunctionProgrammer");
@@ -41,30 +43,34 @@ var FunctionalIsParametersProgrammer;
41
43
  return function (equals) {
42
44
  return function (expression, declaration) {
43
45
  var async = FunctionalGeneralProgrammer_1.FunctionalGeneralProgrammer.getReturnType(project.checker)(declaration).async;
44
- return typescript_1.default.factory.createArrowFunction(async
45
- ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
46
- : undefined, undefined, declaration.parameters, FunctionalIsFunctionProgrammer_1.FunctionalIsFunctionProgrammer.getReturnTypeNode(declaration, async), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(FunctionalIsParametersProgrammer.writeStatements(project)(modulo)(equals)(declaration)), false), [
47
- typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
48
- return typescript_1.default.factory.createIdentifier(p.name.getText());
49
- }))),
46
+ var result = FunctionalIsParametersProgrammer.decompose(project)(modulo)(equals)(declaration);
47
+ return ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(result.functions), false), [
48
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createArrowFunction(async
49
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
50
+ : undefined, undefined, declaration.parameters, FunctionalIsFunctionProgrammer_1.FunctionalIsFunctionProgrammer.getReturnTypeNode(declaration, async), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(result.statements), false), [
51
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
52
+ return typescript_1.default.factory.createIdentifier(p.name.getText());
53
+ }))),
54
+ ], false), true))),
50
55
  ], false), true));
51
56
  };
52
57
  };
53
58
  };
54
59
  };
55
- FunctionalIsParametersProgrammer.writeStatements = function (project) {
60
+ FunctionalIsParametersProgrammer.decompose = function (project) {
56
61
  return function (modulo) {
57
62
  return function (equals) {
58
- return function (declaration) {
59
- return declaration.parameters
60
- .map(function (p) {
63
+ return function (declaration) { return ({
64
+ functions: declaration.parameters.map(function (p, i) {
61
65
  var _a;
62
- return [
63
- 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())),
64
- ];
65
- })
66
- .flat();
67
- };
66
+ return StatementFactory_1.StatementFactory.constant("__is_param_".concat(i), IsProgrammer_1.IsProgrammer.write(project)(modulo)(equals)(project.checker.getTypeFromTypeNode((_a = p.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"))));
67
+ }),
68
+ statements: declaration.parameters
69
+ .map(function (p, i) { return [
70
+ typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createFalse(), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("__is_param_".concat(i)), undefined, [typescript_1.default.factory.createIdentifier(p.name.getText())])), typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createNull())),
71
+ ]; })
72
+ .flat(),
73
+ }); };
68
74
  };
69
75
  };
70
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalIsParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsParametersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2DAA0D;AAI1D,gDAA+C;AAC/C,mFAAkF;AAClF,sFAAqF;AAErF,IAAiB,gCAAgC,CA8DhD;AA9DD,WAAiB,gCAAgC;IAClC,sCAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC;oBAE3B,IAAA,KAAK,GAAK,yDAA2B,CAAC,aAAa,CACzD,OAAO,CAAC,OAAO,CAChB,CAAC,WAAW,CAAC,MAFD,CAEE;oBACf,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,+DAA8B,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,EACpE,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,wCAEf,iCAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC;wBACxD,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;YA/BD,CA+BC;QAhCD,CAgCC;IAjCD,CAiCC,CAAC;IAES,gDAAe,GAC1B,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UAAC,WAAmC;oBAClC,OAAA,WAAW,CAAC,UAAU;yBACnB,GAAG,CAAC,UAAC,CAAC;;wBAAK,OAAA;4BACV,oBAAE,CAAC,OAAO,CAAC,iBAAiB,CAC1B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EACxB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,2BAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACzC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACjC,MAAA,CAAC,CAAC,IAAI,mCAAI,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CACrC,CACF,EACD,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAChD,CACF,EACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAC1D;yBACF,CAAA;qBAAA,CAAC;yBACD,IAAI,EAAE;gBAlBT,CAkBS;YAnBX,CAmBW;QApBX,CAoBW;IArBX,CAqBW,CAAC;AAChB,CAAC,EA9DgB,gCAAgC,gDAAhC,gCAAgC,QA8DhD"}
1
+ {"version":3,"file":"FunctionalIsParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsParametersProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace FunctionalIsReturnProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
5
- const writeStatements: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => {
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.CallExpression;
5
+ const decompose: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => {
6
6
  async: boolean;
7
+ functions: ts.Statement[];
7
8
  statements: ts.Statement[];
8
9
  };
9
10
  }
@@ -1,10 +1,36 @@
1
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
+ };
2
27
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
28
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
29
  };
5
30
  Object.defineProperty(exports, "__esModule", { value: true });
6
31
  exports.FunctionalIsReturnProgrammer = void 0;
7
32
  var typescript_1 = __importDefault(require("typescript"));
33
+ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
8
34
  var StatementFactory_1 = require("../../factories/StatementFactory");
9
35
  var StringUtil_1 = require("../../utils/StringUtil");
10
36
  var IsProgrammer_1 = require("../IsProgrammer");
@@ -16,15 +42,17 @@ var FunctionalIsReturnProgrammer;
16
42
  return function (modulo) {
17
43
  return function (equals) {
18
44
  return function (expression, declaration) {
19
- var _a = FunctionalIsReturnProgrammer.writeStatements(project)(modulo)(equals)(expression, declaration), async = _a.async, statements = _a.statements;
20
- return typescript_1.default.factory.createArrowFunction(async
21
- ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
22
- : undefined, undefined, declaration.parameters, FunctionalIsFunctionProgrammer_1.FunctionalIsFunctionProgrammer.getReturnTypeNode(declaration, async), undefined, typescript_1.default.factory.createBlock(statements, true));
45
+ var result = FunctionalIsReturnProgrammer.decompose(project)(modulo)(equals)(expression, declaration);
46
+ return ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(result.functions), false), [
47
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createArrowFunction(result.async
48
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
49
+ : undefined, undefined, declaration.parameters, FunctionalIsFunctionProgrammer_1.FunctionalIsFunctionProgrammer.getReturnTypeNode(declaration, result.async), undefined, typescript_1.default.factory.createBlock(result.statements, true))),
50
+ ], false), true));
23
51
  };
24
52
  };
25
53
  };
26
54
  };
27
- FunctionalIsReturnProgrammer.writeStatements = function (project) {
55
+ FunctionalIsReturnProgrammer.decompose = function (project) {
28
56
  return function (modulo) {
29
57
  return function (equals) {
30
58
  return function (expression, declaration) {
@@ -33,11 +61,16 @@ var FunctionalIsReturnProgrammer;
33
61
  return typescript_1.default.factory.createIdentifier(p.name.getText());
34
62
  }));
35
63
  var name = StringUtil_1.StringUtil.escapeDuplicate(declaration.parameters.map(function (p) { return p.name.getText(); }))("result");
36
- var statements = [
37
- StatementFactory_1.StatementFactory.constant(name, async ? typescript_1.default.factory.createAwaitExpression(caller) : caller),
38
- 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())),
39
- ];
40
- return { async: async, statements: statements };
64
+ return {
65
+ async: async,
66
+ functions: [
67
+ StatementFactory_1.StatementFactory.constant("__is_return", IsProgrammer_1.IsProgrammer.write(project)(modulo)(equals)(type)),
68
+ ],
69
+ statements: [
70
+ StatementFactory_1.StatementFactory.constant(name, async ? typescript_1.default.factory.createAwaitExpression(caller) : caller),
71
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("__is_return"), undefined, [typescript_1.default.factory.createIdentifier(name)]), undefined, typescript_1.default.factory.createIdentifier(name), undefined, typescript_1.default.factory.createNull())),
72
+ ],
73
+ };
41
74
  };
42
75
  };
43
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalIsReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsReturnProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FunctionalIsReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsReturnProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace FunctionalValidateFunctionProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.CallExpression;
5
5
  const hookErrors: (props: {
6
6
  expression: ts.Expression;
7
7
  replacer: ts.Expression;
@@ -30,6 +30,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.FunctionalValidateFunctionProgrammer = void 0;
32
32
  var typescript_1 = __importDefault(require("typescript"));
33
+ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
33
34
  var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
34
35
  var FunctionalValidateParametersProgrammer_1 = require("./FunctionalValidateParametersProgrammer");
35
36
  var FunctionalValidateReturnProgrammer_1 = require("./FunctionalValidateReturnProgrammer");
@@ -39,10 +40,13 @@ var FunctionalValidateFunctionProgrammer;
39
40
  return function (modulo) {
40
41
  return function (equals) {
41
42
  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, FunctionalValidateFunctionProgrammer.getReturnTypeNode(declaration, async), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(FunctionalValidateParametersProgrammer_1.FunctionalValidateParametersProgrammer.writeStatements(project)(modulo)(equals)(declaration)), false), __read(statements), false), true));
43
+ var p = FunctionalValidateParametersProgrammer_1.FunctionalValidateParametersProgrammer.decompose(project)(modulo)(equals)(declaration);
44
+ var r = FunctionalValidateReturnProgrammer_1.FunctionalValidateReturnProgrammer.decompose(project)(modulo)(equals)(expression, declaration);
45
+ return ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock(__spreadArray(__spreadArray(__spreadArray([], __read(p.functions), false), __read(r.functions), false), [
46
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createArrowFunction(r.async
47
+ ? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
48
+ : undefined, undefined, declaration.parameters, FunctionalValidateFunctionProgrammer.getReturnTypeNode(declaration, r.async), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(p.statements), false), __read(r.statements), false), true))),
49
+ ], false), true));
46
50
  };
47
51
  };
48
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalValidateFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalValidateFunctionProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FunctionalValidateFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalValidateFunctionProgrammer.ts"],"names":[],"mappings":"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"}