@autobe/compiler 0.9.2 → 0.10.0

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 (95) hide show
  1. package/lib/AutoBeCompiler.d.ts +2 -1
  2. package/lib/AutoBeCompiler.js +2 -0
  3. package/lib/AutoBeCompiler.js.map +1 -1
  4. package/lib/AutoBeInterfaceCompiler.js +7 -125
  5. package/lib/AutoBeInterfaceCompiler.js.map +1 -1
  6. package/lib/AutoBePrismaCompiler.d.ts +2 -2
  7. package/lib/AutoBeTestCompiler.d.ts +8 -0
  8. package/lib/AutoBeTestCompiler.js +86 -0
  9. package/lib/AutoBeTestCompiler.js.map +1 -0
  10. package/lib/AutoBeTypeScriptCompiler.d.ts +2 -2
  11. package/lib/AutoBeTypeScriptCompiler.js +3 -3
  12. package/lib/AutoBeTypeScriptCompiler.js.map +1 -1
  13. package/lib/index.d.ts +3 -2
  14. package/lib/index.js +3 -2
  15. package/lib/index.js.map +1 -1
  16. package/lib/interface/transformOpenApi.d.ts +3 -0
  17. package/lib/interface/transformOpenApi.js +56 -0
  18. package/lib/interface/transformOpenApi.js.map +1 -0
  19. package/lib/prisma/validatePrismaApplication.js +9 -9
  20. package/lib/prisma/validatePrismaApplication.js.map +1 -1
  21. package/lib/prisma/writePrismaApplication.js +3 -3
  22. package/lib/prisma/writePrismaApplication.js.map +1 -1
  23. package/lib/raw/AutoBeCompilerTemplate.js +3 -0
  24. package/lib/raw/AutoBeCompilerTemplate.js.map +1 -1
  25. package/lib/raw/{external.json → nestjs.json} +67 -67
  26. package/lib/raw/test.json +1252 -0
  27. package/lib/test/programmers/AutoBeTestAccessorProgrammer.d.ts +8 -0
  28. package/lib/test/programmers/AutoBeTestAccessorProgrammer.js +19 -0
  29. package/lib/test/programmers/AutoBeTestAccessorProgrammer.js.map +1 -0
  30. package/lib/test/programmers/AutoBeTestFunctionalProgrammer.d.ts +12 -0
  31. package/lib/test/programmers/AutoBeTestFunctionalProgrammer.js +29 -0
  32. package/lib/test/programmers/AutoBeTestFunctionalProgrammer.js.map +1 -0
  33. package/lib/test/programmers/AutoBeTestLiteralProgrammer.d.ts +12 -0
  34. package/lib/test/programmers/AutoBeTestLiteralProgrammer.js +24 -0
  35. package/lib/test/programmers/AutoBeTestLiteralProgrammer.js.map +1 -0
  36. package/lib/test/programmers/AutoBeTestOperatorProgrammer.d.ts +10 -0
  37. package/lib/test/programmers/AutoBeTestOperatorProgrammer.js +38 -0
  38. package/lib/test/programmers/AutoBeTestOperatorProgrammer.js.map +1 -0
  39. package/lib/test/programmers/AutoBeTestPredicateProgrammer.d.ts +9 -0
  40. package/lib/test/programmers/AutoBeTestPredicateProgrammer.js +84 -0
  41. package/lib/test/programmers/AutoBeTestPredicateProgrammer.js.map +1 -0
  42. package/lib/test/programmers/AutoBeTestRandomProgrammer.d.ts +14 -0
  43. package/lib/test/programmers/AutoBeTestRandomProgrammer.js +151 -0
  44. package/lib/test/programmers/AutoBeTestRandomProgrammer.js.map +1 -0
  45. package/lib/test/programmers/AutoBeTestStatementProgrammer.d.ts +11 -0
  46. package/lib/test/programmers/AutoBeTestStatementProgrammer.js +81 -0
  47. package/lib/test/programmers/AutoBeTestStatementProgrammer.js.map +1 -0
  48. package/lib/test/programmers/IAutoBeTestApiFunction.d.ts +5 -0
  49. package/lib/test/programmers/IAutoBeTestApiFunction.js +3 -0
  50. package/lib/test/programmers/IAutoBeTestApiFunction.js.map +1 -0
  51. package/lib/test/programmers/IAutoBeTestProgrammerContext.d.ts +9 -0
  52. package/lib/test/programmers/IAutoBeTestProgrammerContext.js +3 -0
  53. package/lib/test/programmers/IAutoBeTestProgrammerContext.js.map +1 -0
  54. package/lib/test/programmers/writeTestExpression.d.ts +4 -0
  55. package/lib/test/programmers/writeTestExpression.js +13 -0
  56. package/lib/test/programmers/writeTestExpression.js.map +1 -0
  57. package/lib/test/programmers/writeTestFunction.d.ts +2 -0
  58. package/lib/test/programmers/writeTestFunction.js +63 -0
  59. package/lib/test/programmers/writeTestFunction.js.map +1 -0
  60. package/lib/test/programmers/writeTestStatement.d.ts +4 -0
  61. package/lib/test/programmers/writeTestStatement.js +10 -0
  62. package/lib/test/programmers/writeTestStatement.js.map +1 -0
  63. package/lib/utils/FilePrinter.d.ts +10 -0
  64. package/lib/utils/FilePrinter.js +54 -0
  65. package/lib/utils/FilePrinter.js.map +1 -0
  66. package/package.json +8 -7
  67. package/src/AutoBeCompiler.ts +4 -0
  68. package/src/AutoBeInterfaceCompiler.ts +8 -133
  69. package/src/AutoBePrismaCompiler.ts +2 -2
  70. package/src/AutoBeTestCompiler.ts +95 -0
  71. package/src/AutoBeTypeScriptCompiler.ts +7 -7
  72. package/src/index.ts +3 -2
  73. package/src/interface/transformOpenApi.ts +54 -0
  74. package/src/prisma/validatePrismaApplication.ts +1 -1
  75. package/src/prisma/writePrismaApplication.ts +1 -1
  76. package/src/raw/AutoBeCompilerTemplate.ts +3 -0
  77. package/src/raw/{external.json → nestjs.json} +67 -67
  78. package/src/raw/test.json +1252 -0
  79. package/src/test/programmers/AutoBeTestAccessorProgrammer.ts +42 -0
  80. package/src/test/programmers/AutoBeTestFunctionalProgrammer.ts +87 -0
  81. package/src/test/programmers/AutoBeTestLiteralProgrammer.ts +65 -0
  82. package/src/test/programmers/AutoBeTestOperatorProgrammer.ts +84 -0
  83. package/src/test/programmers/AutoBeTestPredicateProgrammer.ts +127 -0
  84. package/src/test/programmers/AutoBeTestRandomProgrammer.ts +314 -0
  85. package/src/test/programmers/AutoBeTestStatementProgrammer.ts +154 -0
  86. package/src/test/programmers/IAutoBeTestApiFunction.ts +6 -0
  87. package/src/test/programmers/IAutoBeTestProgrammerContext.ts +11 -0
  88. package/src/test/programmers/writeTestExpression.ts +24 -0
  89. package/src/test/programmers/writeTestFunction.ts +100 -0
  90. package/src/test/programmers/writeTestStatement.ts +15 -0
  91. package/src/utils/FilePrinter.ts +56 -0
  92. package/lib/utils/StringUtil.d.ts +0 -4
  93. package/lib/utils/StringUtil.js +0 -43
  94. package/lib/utils/StringUtil.js.map +0 -1
  95. package/src/utils/StringUtil.ts +0 -45
@@ -0,0 +1,42 @@
1
+ import { AutoBeTest } from "@autobe/interface";
2
+ import ts from "typescript";
3
+
4
+ import { IAutoBeTestProgrammerContext } from "./IAutoBeTestProgrammerContext";
5
+ import { writeTestExpression } from "./writeTestExpression";
6
+
7
+ export namespace AutoBeTestAccessorProgrammer {
8
+ export const identifier = (
9
+ _ctx: IAutoBeTestProgrammerContext,
10
+ expr: AutoBeTest.IIdentifier,
11
+ ): ts.Identifier => ts.factory.createIdentifier(expr.text);
12
+
13
+ export const propertyAccessExpression = (
14
+ ctx: IAutoBeTestProgrammerContext,
15
+ expr: AutoBeTest.IPropertyAccessExpression,
16
+ ): ts.PropertyAccessChain | ts.PropertyAccessExpression =>
17
+ expr.questionDot
18
+ ? ts.factory.createPropertyAccessChain(
19
+ writeTestExpression(ctx, expr.expression),
20
+ ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
21
+ expr.name,
22
+ )
23
+ : ts.factory.createPropertyAccessExpression(
24
+ writeTestExpression(ctx, expr.expression),
25
+ expr.name,
26
+ );
27
+
28
+ export const elementAccessExpression = (
29
+ ctx: IAutoBeTestProgrammerContext,
30
+ expr: AutoBeTest.IElementAccessExpression,
31
+ ): ts.ElementAccessChain | ts.ElementAccessExpression =>
32
+ expr.questionDot
33
+ ? ts.factory.createElementAccessChain(
34
+ writeTestExpression(ctx, expr.expression),
35
+ ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
36
+ writeTestExpression(ctx, expr.argumentExpression),
37
+ )
38
+ : ts.factory.createElementAccessExpression(
39
+ writeTestExpression(ctx, expr.expression),
40
+ writeTestExpression(ctx, expr.argumentExpression),
41
+ );
42
+ }
@@ -0,0 +1,87 @@
1
+ import { AutoBeTest } from "@autobe/interface";
2
+ import ts from "typescript";
3
+ import { ExpressionFactory } from "typia/lib/factories/ExpressionFactory";
4
+
5
+ import { AutoBeTestStatementProgrammer } from "./AutoBeTestStatementProgrammer";
6
+ import { IAutoBeTestProgrammerContext } from "./IAutoBeTestProgrammerContext";
7
+ import { writeTestExpression } from "./writeTestExpression";
8
+
9
+ export namespace AutoBeTestFunctionalProgrammer {
10
+ export const arrowFunction = (
11
+ ctx: IAutoBeTestProgrammerContext,
12
+ expr: AutoBeTest.IArrowFunction,
13
+ ): ts.ArrowFunction =>
14
+ ts.factory.createArrowFunction(
15
+ [ts.factory.createModifier(ts.SyntaxKind.AsyncKeyword)],
16
+ undefined,
17
+ [],
18
+ undefined,
19
+ undefined,
20
+ AutoBeTestStatementProgrammer.block(ctx, expr.body),
21
+ );
22
+
23
+ export const callExpression = (
24
+ ctx: IAutoBeTestProgrammerContext,
25
+ expr: AutoBeTest.ICallExpression,
26
+ ): ts.CallExpression =>
27
+ ts.factory.createCallExpression(
28
+ writeTestExpression(ctx, expr.expression),
29
+ undefined,
30
+ expr.arguments.map((arg) => writeTestExpression(ctx, arg)),
31
+ );
32
+
33
+ export const newExpression = (
34
+ ctx: IAutoBeTestProgrammerContext,
35
+ expr: AutoBeTest.INewExpression,
36
+ ): ts.NewExpression =>
37
+ ts.factory.createNewExpression(
38
+ writeTestExpression(ctx, expr.expression),
39
+ undefined,
40
+ expr.arguments.map((arg) => writeTestExpression(ctx, arg)),
41
+ );
42
+
43
+ export const arrayFilterExpression = (
44
+ ctx: IAutoBeTestProgrammerContext,
45
+ expr: AutoBeTest.IArrayFilterExpression,
46
+ ): ts.AwaitExpression =>
47
+ arrayExpression(ctx, "asyncFilter", [expr.array, expr.function]);
48
+
49
+ export const arrayForEachExpression = (
50
+ ctx: IAutoBeTestProgrammerContext,
51
+ expr: AutoBeTest.IArrayForEachExpression,
52
+ ): ts.AwaitExpression =>
53
+ arrayExpression(ctx, "asyncForEach", [expr.array, expr.function]);
54
+
55
+ export const arrayMapExpression = (
56
+ ctx: IAutoBeTestProgrammerContext,
57
+ expr: AutoBeTest.IArrayMapExpression,
58
+ ): ts.AwaitExpression =>
59
+ arrayExpression(ctx, "asyncMap", [expr.array, expr.function]);
60
+
61
+ export const arrayRepeatExpression = (
62
+ ctx: IAutoBeTestProgrammerContext,
63
+ expr: AutoBeTest.IArrayRepeatExpression,
64
+ ): ts.AwaitExpression =>
65
+ arrayExpression(ctx, "asyncRepeat", [expr.count, expr.function]);
66
+ }
67
+
68
+ const arrayExpression = (
69
+ ctx: IAutoBeTestProgrammerContext,
70
+ name: string,
71
+ argList: AutoBeTest.IExpression[],
72
+ ): ts.AwaitExpression =>
73
+ ts.factory.createAwaitExpression(
74
+ ExpressionFactory.currying({
75
+ function: ts.factory.createPropertyAccessExpression(
76
+ ts.factory.createIdentifier(
77
+ ctx.importer.external({
78
+ type: "instance",
79
+ library: "@nestia/e2e",
80
+ name: "ArrayUtil",
81
+ }),
82
+ ),
83
+ name,
84
+ ),
85
+ arguments: argList.map((a) => writeTestExpression(ctx, a)),
86
+ }),
87
+ );
@@ -0,0 +1,65 @@
1
+ import { AutoBeTest } from "@autobe/interface";
2
+ import ts from "typescript";
3
+ import { Escaper } from "typia/lib/utils/Escaper";
4
+
5
+ import { IAutoBeTestProgrammerContext } from "./IAutoBeTestProgrammerContext";
6
+ import { writeTestExpression } from "./writeTestExpression";
7
+
8
+ export namespace AutoBeTestLiteralProgrammer {
9
+ export const booleanLiteral = (
10
+ _ctx: IAutoBeTestProgrammerContext,
11
+ expr: AutoBeTest.IBooleanLiteral,
12
+ ): ts.BooleanLiteral =>
13
+ expr.value ? ts.factory.createTrue() : ts.factory.createFalse();
14
+
15
+ export const numericLiteral = (
16
+ _ctx: IAutoBeTestProgrammerContext,
17
+ expr: AutoBeTest.INumericLiteral,
18
+ ): ts.NumericLiteral | ts.PrefixUnaryExpression =>
19
+ expr.value < 0
20
+ ? ts.factory.createPrefixUnaryExpression(
21
+ ts.SyntaxKind.MinusToken,
22
+ ts.factory.createNumericLiteral(-expr.value),
23
+ )
24
+ : ts.factory.createNumericLiteral(expr.value);
25
+
26
+ export const stringLiteral = (
27
+ _ctx: IAutoBeTestProgrammerContext,
28
+ expr: AutoBeTest.IStringLiteral,
29
+ ): ts.StringLiteral => ts.factory.createStringLiteral(expr.value);
30
+
31
+ export const arrayLiteralExpression = (
32
+ ctx: IAutoBeTestProgrammerContext,
33
+ expr: AutoBeTest.IArrayLiteralExpression,
34
+ ): ts.ArrayLiteralExpression =>
35
+ ts.factory.createArrayLiteralExpression(
36
+ expr.elements.map((elem) => writeTestExpression(ctx, elem)),
37
+ true,
38
+ );
39
+
40
+ export const objectLiteralExpression = (
41
+ ctx: IAutoBeTestProgrammerContext,
42
+ expr: AutoBeTest.IObjectLiteralExpression,
43
+ ): ts.ObjectLiteralExpression =>
44
+ ts.factory.createObjectLiteralExpression(
45
+ expr.properties.map((e) =>
46
+ ts.factory.createPropertyAssignment(
47
+ Escaper.variable(e.name)
48
+ ? ts.factory.createIdentifier(e.name)
49
+ : ts.factory.createStringLiteral(e.name),
50
+ writeTestExpression(ctx, e.value),
51
+ ),
52
+ ),
53
+ true,
54
+ );
55
+
56
+ export const nullLiteral = (
57
+ _ctx: IAutoBeTestProgrammerContext,
58
+ _expr: AutoBeTest.INullLiteral,
59
+ ): ts.NullLiteral => ts.factory.createNull();
60
+
61
+ export const undefinedKeyword = (
62
+ _ctx: IAutoBeTestProgrammerContext,
63
+ _expr: AutoBeTest.IUndefinedKeyword,
64
+ ): ts.Identifier => ts.factory.createIdentifier("undefined");
65
+ }
@@ -0,0 +1,84 @@
1
+ import { AutoBeTest } from "@autobe/interface";
2
+ import ts from "typescript";
3
+
4
+ import { IAutoBeTestProgrammerContext } from "./IAutoBeTestProgrammerContext";
5
+ import { writeTestExpression } from "./writeTestExpression";
6
+
7
+ export namespace AutoBeTestOperatorProgrammer {
8
+ export const conditionalExpression = (
9
+ ctx: IAutoBeTestProgrammerContext,
10
+ expr: AutoBeTest.IConditionalExpression,
11
+ ): ts.ConditionalExpression =>
12
+ ts.factory.createConditionalExpression(
13
+ writeTestExpression(ctx, expr.condition),
14
+ undefined,
15
+ writeTestExpression(ctx, expr.whenTrue),
16
+ undefined,
17
+ writeTestExpression(ctx, expr.whenFalse),
18
+ );
19
+
20
+ export const typeOfExpression = (
21
+ ctx: IAutoBeTestProgrammerContext,
22
+ expr: AutoBeTest.ITypeOfExpression,
23
+ ): ts.TypeOfExpression =>
24
+ ts.factory.createTypeOfExpression(
25
+ writeTestExpression(ctx, expr.expression),
26
+ );
27
+
28
+ export const prefixUnaryExpression = (
29
+ ctx: IAutoBeTestProgrammerContext,
30
+ expr: AutoBeTest.IPrefixUnaryExpression,
31
+ ): ts.TypeOfExpression | ts.PrefixUnaryExpression =>
32
+ ts.factory.createPrefixUnaryExpression(
33
+ PREFIX_UNARY_OPERATORS[expr.operator],
34
+ writeTestExpression(ctx, expr.operand),
35
+ );
36
+
37
+ export const postfixUnaryExpression = (
38
+ ctx: IAutoBeTestProgrammerContext,
39
+ expr: AutoBeTest.IPostfixUnaryExpression,
40
+ ): ts.PostfixUnaryExpression =>
41
+ ts.factory.createPostfixUnaryExpression(
42
+ writeTestExpression(ctx, expr.operand),
43
+ POSTFIX_UNARY_OPERATORS[expr.operator],
44
+ );
45
+
46
+ export const binaryExpression = (
47
+ ctx: IAutoBeTestProgrammerContext,
48
+ expr: AutoBeTest.IBinaryExpression,
49
+ ): ts.BinaryExpression =>
50
+ ts.factory.createBinaryExpression(
51
+ writeTestExpression(ctx, expr.left),
52
+ BINARY_OPERATORS[expr.operator],
53
+ writeTestExpression(ctx, expr.right),
54
+ );
55
+ }
56
+
57
+ const POSTFIX_UNARY_OPERATORS = {
58
+ "++": ts.SyntaxKind.PlusPlusToken,
59
+ "--": ts.SyntaxKind.MinusMinusToken,
60
+ } as const;
61
+
62
+ const PREFIX_UNARY_OPERATORS = {
63
+ ...POSTFIX_UNARY_OPERATORS,
64
+ "+": ts.SyntaxKind.PlusToken,
65
+ "-": ts.SyntaxKind.MinusToken,
66
+ "!": ts.SyntaxKind.ExclamationToken,
67
+ } as const;
68
+
69
+ const BINARY_OPERATORS = {
70
+ "===": ts.SyntaxKind.EqualsEqualsEqualsToken,
71
+ "!==": ts.SyntaxKind.ExclamationEqualsEqualsToken,
72
+ "<": ts.SyntaxKind.LessThanToken,
73
+ "<=": ts.SyntaxKind.LessThanEqualsToken,
74
+ ">": ts.SyntaxKind.GreaterThanToken,
75
+ ">=": ts.SyntaxKind.GreaterThanEqualsToken,
76
+ "+": ts.SyntaxKind.PlusToken,
77
+ "-": ts.SyntaxKind.MinusToken,
78
+ "*": ts.SyntaxKind.AsteriskToken,
79
+ "/": ts.SyntaxKind.SlashToken,
80
+ "%": ts.SyntaxKind.PercentToken,
81
+ "&&": ts.SyntaxKind.AmpersandAmpersandToken,
82
+ "||": ts.SyntaxKind.BarBarToken,
83
+ instanceof: ts.SyntaxKind.InstanceOfKeyword,
84
+ } as const;
@@ -0,0 +1,127 @@
1
+ import { AutoBeTest } from "@autobe/interface";
2
+ import ts from "typescript";
3
+ import { ExpressionFactory } from "typia/lib/factories/ExpressionFactory";
4
+
5
+ import { IAutoBeTestProgrammerContext } from "./IAutoBeTestProgrammerContext";
6
+ import { writeTestExpression } from "./writeTestExpression";
7
+
8
+ export namespace AutoBeTestPredicateProgrammer {
9
+ export const equalPredicate = (
10
+ ctx: IAutoBeTestProgrammerContext,
11
+ expression: AutoBeTest.IEqualPredicate,
12
+ ): ts.CallExpression =>
13
+ ExpressionFactory.currying({
14
+ function: ts.factory.createPropertyAccessExpression(
15
+ ts.factory.createIdentifier(
16
+ ctx.importer.external({
17
+ type: "instance",
18
+ library: "@nestia/e2e",
19
+ name: "TestValidator",
20
+ }),
21
+ ),
22
+ "equals",
23
+ ),
24
+ arguments: [
25
+ ts.factory.createStringLiteral(expression.title),
26
+ writeTestExpression(ctx, expression.x),
27
+ writeTestExpression(ctx, expression.y),
28
+ ],
29
+ });
30
+
31
+ export const notEqualPredicate = (
32
+ ctx: IAutoBeTestProgrammerContext,
33
+ expression: AutoBeTest.INotEqualPredicate,
34
+ ): ts.CallExpression =>
35
+ ExpressionFactory.currying({
36
+ function: ts.factory.createPropertyAccessExpression(
37
+ ts.factory.createIdentifier(
38
+ ctx.importer.external({
39
+ type: "instance",
40
+ library: "@nestia/e2e",
41
+ name: "TestValidator",
42
+ }),
43
+ ),
44
+ "error",
45
+ ),
46
+ arguments: [
47
+ ts.factory.createStringLiteral(expression.title),
48
+ ts.factory.createArrowFunction(
49
+ undefined,
50
+ undefined,
51
+ [],
52
+ undefined,
53
+ undefined,
54
+ equalPredicate(ctx, {
55
+ type: "equalPredicate",
56
+ title: expression.title,
57
+ x: expression.x,
58
+ y: expression.y,
59
+ }),
60
+ ),
61
+ ],
62
+ });
63
+
64
+ export const conditionalPredicate = (
65
+ ctx: IAutoBeTestProgrammerContext,
66
+ expression: AutoBeTest.IConditionalPredicate,
67
+ ): ts.CallExpression =>
68
+ ExpressionFactory.currying({
69
+ function: ts.factory.createPropertyAccessExpression(
70
+ ts.factory.createIdentifier(
71
+ ctx.importer.external({
72
+ type: "instance",
73
+ library: "@nestia/e2e",
74
+ name: "TestValidator",
75
+ }),
76
+ ),
77
+ "predicate",
78
+ ),
79
+ arguments: [
80
+ ts.factory.createStringLiteral(expression.title),
81
+ writeTestExpression(ctx, expression.expression),
82
+ ],
83
+ });
84
+
85
+ export const errorPredicate = (
86
+ ctx: IAutoBeTestProgrammerContext,
87
+ expression: AutoBeTest.IErrorPredicate,
88
+ ): ts.CallExpression =>
89
+ ExpressionFactory.currying({
90
+ function: ts.factory.createPropertyAccessExpression(
91
+ ts.factory.createIdentifier(
92
+ ctx.importer.external({
93
+ type: "instance",
94
+ library: "@nestia/e2e",
95
+ name: "TestValidator",
96
+ }),
97
+ ),
98
+ "error",
99
+ ),
100
+ arguments: [
101
+ ts.factory.createStringLiteral(expression.title),
102
+ writeTestExpression(ctx, expression.function),
103
+ ],
104
+ });
105
+
106
+ // export const httpErrorPredicate = (
107
+ // ctx: IAutoBeTestProgrammerContext,
108
+ // expression: AutoBeTest.IHttpErrorPredicate,
109
+ // ): ts.CallExpression =>
110
+ // ExpressionFactory.currying({
111
+ // function: ts.factory.createPropertyAccessExpression(
112
+ // ts.factory.createIdentifier(
113
+ // ctx.importer.external({
114
+ // type: "instance",
115
+ // library: "@nestia/e2e",
116
+ // name: "TestValidator",
117
+ // }),
118
+ // ),
119
+ // "httpError",
120
+ // ),
121
+ // arguments: [
122
+ // ts.factory.createStringLiteral(expression.title),
123
+ // ts.factory.createNumericLiteral(expression.status),
124
+ // writeTestExpression(ctx, expression.function),
125
+ // ],
126
+ // });
127
+ }