@autobe/utils 0.29.2 → 0.30.0-dev.20260315

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 (63) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +261 -0
  3. package/lib/AutoBeEscaper.d.ts +4 -0
  4. package/lib/AutoBeEscaper.js +85 -0
  5. package/lib/AutoBeEscaper.js.map +1 -0
  6. package/lib/StringUtil.d.ts +1 -0
  7. package/lib/StringUtil.js +15 -36
  8. package/lib/StringUtil.js.map +1 -1
  9. package/lib/aggregate/AutoBeProcessAggregateFactory.js +9 -0
  10. package/lib/aggregate/AutoBeProcessAggregateFactory.js.map +1 -1
  11. package/lib/index.d.ts +1 -0
  12. package/lib/index.js +1 -0
  13. package/lib/index.js.map +1 -1
  14. package/lib/interface/AutoBeOpenApiEndpointComparator.d.ts +1 -0
  15. package/lib/interface/AutoBeOpenApiEndpointComparator.js +4 -0
  16. package/lib/interface/AutoBeOpenApiEndpointComparator.js.map +1 -1
  17. package/lib/interface/AutoBeOpenApiTypeChecker.d.ts +14 -0
  18. package/lib/interface/AutoBeOpenApiTypeChecker.js +67 -0
  19. package/lib/interface/AutoBeOpenApiTypeChecker.js.map +1 -1
  20. package/lib/interface/invertOpenApiDocument.d.ts +1 -1
  21. package/lib/interface/invertOpenApiDocument.js +22 -7
  22. package/lib/interface/invertOpenApiDocument.js.map +1 -1
  23. package/lib/interface/missedOpenApiSchemas.js +3 -3
  24. package/lib/interface/missedOpenApiSchemas.js.map +1 -1
  25. package/lib/interface/revertOpenApiAccessor.js +2 -2
  26. package/lib/interface/revertOpenApiAccessor.js.map +1 -1
  27. package/lib/interface/transformOpenApiDocument.d.ts +2 -2
  28. package/lib/interface/transformOpenApiDocument.js +14 -11
  29. package/lib/interface/transformOpenApiDocument.js.map +1 -1
  30. package/lib/prisma/writePrismaApplication.d.ts +2 -2
  31. package/lib/prisma/writePrismaApplication.js +75 -66
  32. package/lib/prisma/writePrismaApplication.js.map +1 -1
  33. package/lib/test/validateTestExpression.js +3 -1
  34. package/lib/test/validateTestExpression.js.map +1 -1
  35. package/lib/test/validateTestStatement.js +3 -1
  36. package/lib/test/validateTestStatement.js.map +1 -1
  37. package/package.json +5 -5
  38. package/src/ArrayUtil.ts +21 -21
  39. package/src/AutoBeEscaper.ts +83 -0
  40. package/src/MapUtil.ts +10 -10
  41. package/src/StringUtil.ts +34 -59
  42. package/src/aggregate/AutoBeFunctionCallingMetricFactory.ts +44 -44
  43. package/src/aggregate/AutoBeProcessAggregateFactory.ts +161 -152
  44. package/src/aggregate/TokenUsageComputer.ts +49 -49
  45. package/src/aggregate/index.ts +3 -3
  46. package/src/index.ts +10 -9
  47. package/src/interface/AutoBeOpenApiEndpointComparator.ts +27 -20
  48. package/src/interface/AutoBeOpenApiTypeChecker.ts +127 -43
  49. package/src/interface/index.ts +6 -6
  50. package/src/interface/invertOpenApiDocument.ts +80 -68
  51. package/src/interface/missedOpenApiSchemas.ts +25 -25
  52. package/src/interface/revertOpenApiAccessor.ts +25 -25
  53. package/src/interface/transformOpenApiDocument.ts +94 -91
  54. package/src/prisma/index.ts +1 -1
  55. package/src/prisma/writePrismaApplication.ts +456 -439
  56. package/src/test/AutoBeTestExpressionValidator.ts +253 -253
  57. package/src/test/AutoBeTestStatementValidator.ts +72 -72
  58. package/src/test/IAutoBeTextValidateContext.ts +10 -10
  59. package/src/test/index.ts +2 -2
  60. package/src/test/validateTestApiOperateStatement.ts +92 -92
  61. package/src/test/validateTestExpression.ts +16 -10
  62. package/src/test/validateTestFunction.ts +7 -7
  63. package/src/test/validateTestStatement.ts +16 -10
@@ -1,253 +1,253 @@
1
- import { AutoBeTest } from "@autobe/interface";
2
-
3
- import { AutoBeTestStatementValidator } from "./AutoBeTestStatementValidator";
4
- import { IAutoBeTextValidateContext } from "./IAutoBeTextValidateContext";
5
- import { validateTestExpression } from "./validateTestExpression";
6
-
7
- export namespace AutoBeTestExpressionValidator {
8
- /* -----------------------------------------------------------
9
- LITERALS
10
- ----------------------------------------------------------- */
11
- export const booleanLiteral = (): void => {};
12
- export const numericLiteral = (): void => {};
13
- export const stringLiteral = (): void => {};
14
- export const nullLiteral = (): void => {};
15
- export const undefinedKeyword = (): void => {};
16
-
17
- export const arrayLiteralExpression = (
18
- ctx: IAutoBeTextValidateContext,
19
- item: AutoBeTest.IArrayLiteralExpression,
20
- path: string,
21
- ): void => {
22
- item.elements.forEach((element, i) => {
23
- validateTestExpression(ctx, element, `${path}.elements[${i}]`);
24
- });
25
- };
26
-
27
- export const objectLiteralExpression = (
28
- ctx: IAutoBeTextValidateContext,
29
- item: AutoBeTest.IObjectLiteralExpression,
30
- path: string,
31
- ): void => {
32
- item.properties.forEach((property, i) => {
33
- validateTestExpression(ctx, property.value, `${path}.properties[${i}]`);
34
- });
35
- };
36
-
37
- /* -----------------------------------------------------------
38
- ACCESSORS
39
- ----------------------------------------------------------- */
40
- export const identifier = (): void => {};
41
-
42
- export const propertyAccessExpression = (
43
- ctx: IAutoBeTextValidateContext,
44
- item: AutoBeTest.IPropertyAccessExpression,
45
- path: string,
46
- ): void => {
47
- validateTestExpression(ctx, item.expression, `${path}.expression`);
48
- };
49
-
50
- export const elementAccessExpression = (
51
- ctx: IAutoBeTextValidateContext,
52
- item: AutoBeTest.IElementAccessExpression,
53
- path: string,
54
- ): void => {
55
- validateTestExpression(ctx, item.expression, `${path}.expression`);
56
- validateTestExpression(
57
- ctx,
58
- item.argumentExpression,
59
- `${path}.argumentExpression`,
60
- );
61
- };
62
-
63
- /* -----------------------------------------------------------
64
- OPERATORS
65
- ----------------------------------------------------------- */
66
- export const typeOfExpression = (
67
- ctx: IAutoBeTextValidateContext,
68
- item: AutoBeTest.ITypeOfExpression,
69
- path: string,
70
- ): void => {
71
- validateTestExpression(ctx, item.expression, `${path}.expression`);
72
- };
73
-
74
- export const prefixUnaryExpression = (
75
- ctx: IAutoBeTextValidateContext,
76
- item: AutoBeTest.IPrefixUnaryExpression,
77
- path: string,
78
- ): void => {
79
- validateTestExpression(ctx, item.operand, `${path}.operand`);
80
- };
81
-
82
- export const postfixUnaryExpression = (
83
- ctx: IAutoBeTextValidateContext,
84
- item: AutoBeTest.IPostfixUnaryExpression,
85
- path: string,
86
- ): void => {
87
- validateTestExpression(ctx, item.operand, `${path}.operand`);
88
- };
89
-
90
- export const binaryExpression = (
91
- ctx: IAutoBeTextValidateContext,
92
- item: AutoBeTest.IBinaryExpression,
93
- path: string,
94
- ): void => {
95
- validateTestExpression(ctx, item.left, `${path}.left`);
96
- validateTestExpression(ctx, item.right, `${path}.right`);
97
- };
98
-
99
- export const conditionalExpression = (
100
- ctx: IAutoBeTextValidateContext,
101
- item: AutoBeTest.IConditionalExpression,
102
- path: string,
103
- ): void => {
104
- validateTestExpression(ctx, item.condition, `${path}.condition`);
105
- validateTestExpression(ctx, item.whenTrue, `${path}.whenTrue`);
106
- validateTestExpression(ctx, item.whenFalse, `${path}.whenFalse`);
107
- };
108
-
109
- /* -----------------------------------------------------------
110
- FUNCTIONAL
111
- ----------------------------------------------------------- */
112
- export const arrowFunction = (
113
- ctx: IAutoBeTextValidateContext,
114
- item: AutoBeTest.IArrowFunction,
115
- path: string,
116
- ): void => {
117
- AutoBeTestStatementValidator.block(ctx, item.body, `${path}.body`);
118
- };
119
-
120
- export const callExpression = (
121
- ctx: IAutoBeTextValidateContext,
122
- item: AutoBeTest.ICallExpression,
123
- path: string,
124
- ): void => {
125
- validateTestExpression(ctx, item.expression, `${path}.expression`);
126
- item.arguments.forEach((arg, i) => {
127
- validateTestExpression(ctx, arg, `${path}.arguments[${i}]`);
128
- });
129
- };
130
-
131
- export const newExpression = (
132
- ctx: IAutoBeTextValidateContext,
133
- item: AutoBeTest.INewExpression,
134
- path: string,
135
- ): void => {
136
- validateTestExpression(ctx, item.expression, `${path}.expression`);
137
- item.arguments.forEach((arg, i) => {
138
- validateTestExpression(ctx, arg, `${path}.arguments[${i}]`);
139
- });
140
- };
141
-
142
- export const arrayFilterExpression = (
143
- ctx: IAutoBeTextValidateContext,
144
- item: AutoBeTest.IArrayFilterExpression,
145
- path: string,
146
- ): void => arrayClosureExpression(ctx, item, path);
147
-
148
- export const arrayForEachExpression = (
149
- ctx: IAutoBeTextValidateContext,
150
- item: AutoBeTest.IArrayForEachExpression,
151
- path: string,
152
- ): void => arrayClosureExpression(ctx, item, path);
153
-
154
- export const arrayMapExpression = (
155
- ctx: IAutoBeTextValidateContext,
156
- item: AutoBeTest.IArrayMapExpression,
157
- path: string,
158
- ): void => arrayClosureExpression(ctx, item, path);
159
-
160
- export const arrayRepeatExpression = (
161
- ctx: IAutoBeTextValidateContext,
162
- item: AutoBeTest.IArrayRepeatExpression,
163
- path: string,
164
- ): void => {
165
- validateTestExpression(ctx, item.count, `${path}.length`);
166
- arrowFunction(ctx, item.function, `${path}.function`);
167
- };
168
-
169
- const arrayClosureExpression = (
170
- ctx: IAutoBeTextValidateContext,
171
- item: {
172
- array: AutoBeTest.IExpression;
173
- function: AutoBeTest.IArrowFunction;
174
- },
175
- path: string,
176
- ): void => {
177
- validateTestExpression(ctx, item.array, `${path}.expression`);
178
- arrowFunction(ctx, item.function, `${path}.function`);
179
- };
180
-
181
- /* -----------------------------------------------------------
182
- RANDOM GENERATORS
183
- ----------------------------------------------------------- */
184
- export const pickRandom = (
185
- ctx: IAutoBeTextValidateContext,
186
- item: AutoBeTest.IPickRandom,
187
- path: string,
188
- ): void => {
189
- validateTestExpression(ctx, item.array, `${path}.expression`);
190
- };
191
-
192
- export const sampleRandom = (
193
- ctx: IAutoBeTextValidateContext,
194
- item: AutoBeTest.ISampleRandom,
195
- path: string,
196
- ): void => {
197
- validateTestExpression(ctx, item.array, `${path}.expression`);
198
- validateTestExpression(ctx, item.count, `${path}.length`);
199
- };
200
-
201
- export const booleanRandom = (): void => {};
202
- export const integerRandom = (): void => {};
203
- export const numberRandom = (): void => {};
204
- export const stringRandom = (): void => {};
205
- export const patternRandom = (): void => {};
206
- export const formatRandom = (): void => {};
207
- export const keywordRandom = (): void => {};
208
-
209
- /* -----------------------------------------------------------
210
- PREDICATORS
211
- ----------------------------------------------------------- */
212
- export const equalPredicate = (
213
- ctx: IAutoBeTextValidateContext,
214
- item: AutoBeTest.IEqualPredicate,
215
- path: string,
216
- ): void => {
217
- validateTestExpression(ctx, item.x, `${path}.x`);
218
- validateTestExpression(ctx, item.y, `${path}.y`);
219
- };
220
-
221
- export const notEqualPredicate = (
222
- ctx: IAutoBeTextValidateContext,
223
- item: AutoBeTest.INotEqualPredicate,
224
- path: string,
225
- ): void => {
226
- validateTestExpression(ctx, item.x, `${path}.x`);
227
- validateTestExpression(ctx, item.y, `${path}.y`);
228
- };
229
-
230
- export const conditionalPredicate = (
231
- ctx: IAutoBeTextValidateContext,
232
- item: AutoBeTest.IConditionalPredicate,
233
- path: string,
234
- ): void => {
235
- validateTestExpression(ctx, item.expression, `${path}.condition`);
236
- };
237
-
238
- export const errorPredicate = (
239
- ctx: IAutoBeTextValidateContext,
240
- item: AutoBeTest.IErrorPredicate,
241
- path: string,
242
- ): void => {
243
- arrowFunction(ctx, item.function, `${path}.function`);
244
- };
245
-
246
- // export const httpErrorPredicate = (
247
- // ctx: IAutoBeTextValidateContext,
248
- // item: AutoBeTest.IHttpErrorPredicate,
249
- // path: string,
250
- // ): void => {
251
- // arrowFunction(ctx, item.function, `${path}.function`);
252
- // };
253
- }
1
+ import { AutoBeTest } from "@autobe/interface";
2
+
3
+ import { AutoBeTestStatementValidator } from "./AutoBeTestStatementValidator";
4
+ import { IAutoBeTextValidateContext } from "./IAutoBeTextValidateContext";
5
+ import { validateTestExpression } from "./validateTestExpression";
6
+
7
+ export namespace AutoBeTestExpressionValidator {
8
+ /* -----------------------------------------------------------
9
+ LITERALS
10
+ ----------------------------------------------------------- */
11
+ export const booleanLiteral = (): void => {};
12
+ export const numericLiteral = (): void => {};
13
+ export const stringLiteral = (): void => {};
14
+ export const nullLiteral = (): void => {};
15
+ export const undefinedKeyword = (): void => {};
16
+
17
+ export const arrayLiteralExpression = (
18
+ ctx: IAutoBeTextValidateContext,
19
+ item: AutoBeTest.IArrayLiteralExpression,
20
+ path: string,
21
+ ): void => {
22
+ item.elements.forEach((element, i) => {
23
+ validateTestExpression(ctx, element, `${path}.elements[${i}]`);
24
+ });
25
+ };
26
+
27
+ export const objectLiteralExpression = (
28
+ ctx: IAutoBeTextValidateContext,
29
+ item: AutoBeTest.IObjectLiteralExpression,
30
+ path: string,
31
+ ): void => {
32
+ item.properties.forEach((property, i) => {
33
+ validateTestExpression(ctx, property.value, `${path}.properties[${i}]`);
34
+ });
35
+ };
36
+
37
+ /* -----------------------------------------------------------
38
+ ACCESSORS
39
+ ----------------------------------------------------------- */
40
+ export const identifier = (): void => {};
41
+
42
+ export const propertyAccessExpression = (
43
+ ctx: IAutoBeTextValidateContext,
44
+ item: AutoBeTest.IPropertyAccessExpression,
45
+ path: string,
46
+ ): void => {
47
+ validateTestExpression(ctx, item.expression, `${path}.expression`);
48
+ };
49
+
50
+ export const elementAccessExpression = (
51
+ ctx: IAutoBeTextValidateContext,
52
+ item: AutoBeTest.IElementAccessExpression,
53
+ path: string,
54
+ ): void => {
55
+ validateTestExpression(ctx, item.expression, `${path}.expression`);
56
+ validateTestExpression(
57
+ ctx,
58
+ item.argumentExpression,
59
+ `${path}.argumentExpression`,
60
+ );
61
+ };
62
+
63
+ /* -----------------------------------------------------------
64
+ OPERATORS
65
+ ----------------------------------------------------------- */
66
+ export const typeOfExpression = (
67
+ ctx: IAutoBeTextValidateContext,
68
+ item: AutoBeTest.ITypeOfExpression,
69
+ path: string,
70
+ ): void => {
71
+ validateTestExpression(ctx, item.expression, `${path}.expression`);
72
+ };
73
+
74
+ export const prefixUnaryExpression = (
75
+ ctx: IAutoBeTextValidateContext,
76
+ item: AutoBeTest.IPrefixUnaryExpression,
77
+ path: string,
78
+ ): void => {
79
+ validateTestExpression(ctx, item.operand, `${path}.operand`);
80
+ };
81
+
82
+ export const postfixUnaryExpression = (
83
+ ctx: IAutoBeTextValidateContext,
84
+ item: AutoBeTest.IPostfixUnaryExpression,
85
+ path: string,
86
+ ): void => {
87
+ validateTestExpression(ctx, item.operand, `${path}.operand`);
88
+ };
89
+
90
+ export const binaryExpression = (
91
+ ctx: IAutoBeTextValidateContext,
92
+ item: AutoBeTest.IBinaryExpression,
93
+ path: string,
94
+ ): void => {
95
+ validateTestExpression(ctx, item.left, `${path}.left`);
96
+ validateTestExpression(ctx, item.right, `${path}.right`);
97
+ };
98
+
99
+ export const conditionalExpression = (
100
+ ctx: IAutoBeTextValidateContext,
101
+ item: AutoBeTest.IConditionalExpression,
102
+ path: string,
103
+ ): void => {
104
+ validateTestExpression(ctx, item.condition, `${path}.condition`);
105
+ validateTestExpression(ctx, item.whenTrue, `${path}.whenTrue`);
106
+ validateTestExpression(ctx, item.whenFalse, `${path}.whenFalse`);
107
+ };
108
+
109
+ /* -----------------------------------------------------------
110
+ FUNCTIONAL
111
+ ----------------------------------------------------------- */
112
+ export const arrowFunction = (
113
+ ctx: IAutoBeTextValidateContext,
114
+ item: AutoBeTest.IArrowFunction,
115
+ path: string,
116
+ ): void => {
117
+ AutoBeTestStatementValidator.block(ctx, item.body, `${path}.body`);
118
+ };
119
+
120
+ export const callExpression = (
121
+ ctx: IAutoBeTextValidateContext,
122
+ item: AutoBeTest.ICallExpression,
123
+ path: string,
124
+ ): void => {
125
+ validateTestExpression(ctx, item.expression, `${path}.expression`);
126
+ item.arguments.forEach((arg, i) => {
127
+ validateTestExpression(ctx, arg, `${path}.arguments[${i}]`);
128
+ });
129
+ };
130
+
131
+ export const newExpression = (
132
+ ctx: IAutoBeTextValidateContext,
133
+ item: AutoBeTest.INewExpression,
134
+ path: string,
135
+ ): void => {
136
+ validateTestExpression(ctx, item.expression, `${path}.expression`);
137
+ item.arguments.forEach((arg, i) => {
138
+ validateTestExpression(ctx, arg, `${path}.arguments[${i}]`);
139
+ });
140
+ };
141
+
142
+ export const arrayFilterExpression = (
143
+ ctx: IAutoBeTextValidateContext,
144
+ item: AutoBeTest.IArrayFilterExpression,
145
+ path: string,
146
+ ): void => arrayClosureExpression(ctx, item, path);
147
+
148
+ export const arrayForEachExpression = (
149
+ ctx: IAutoBeTextValidateContext,
150
+ item: AutoBeTest.IArrayForEachExpression,
151
+ path: string,
152
+ ): void => arrayClosureExpression(ctx, item, path);
153
+
154
+ export const arrayMapExpression = (
155
+ ctx: IAutoBeTextValidateContext,
156
+ item: AutoBeTest.IArrayMapExpression,
157
+ path: string,
158
+ ): void => arrayClosureExpression(ctx, item, path);
159
+
160
+ export const arrayRepeatExpression = (
161
+ ctx: IAutoBeTextValidateContext,
162
+ item: AutoBeTest.IArrayRepeatExpression,
163
+ path: string,
164
+ ): void => {
165
+ validateTestExpression(ctx, item.count, `${path}.length`);
166
+ arrowFunction(ctx, item.function, `${path}.function`);
167
+ };
168
+
169
+ const arrayClosureExpression = (
170
+ ctx: IAutoBeTextValidateContext,
171
+ item: {
172
+ array: AutoBeTest.IExpression;
173
+ function: AutoBeTest.IArrowFunction;
174
+ },
175
+ path: string,
176
+ ): void => {
177
+ validateTestExpression(ctx, item.array, `${path}.expression`);
178
+ arrowFunction(ctx, item.function, `${path}.function`);
179
+ };
180
+
181
+ /* -----------------------------------------------------------
182
+ RANDOM GENERATORS
183
+ ----------------------------------------------------------- */
184
+ export const pickRandom = (
185
+ ctx: IAutoBeTextValidateContext,
186
+ item: AutoBeTest.IPickRandom,
187
+ path: string,
188
+ ): void => {
189
+ validateTestExpression(ctx, item.array, `${path}.expression`);
190
+ };
191
+
192
+ export const sampleRandom = (
193
+ ctx: IAutoBeTextValidateContext,
194
+ item: AutoBeTest.ISampleRandom,
195
+ path: string,
196
+ ): void => {
197
+ validateTestExpression(ctx, item.array, `${path}.expression`);
198
+ validateTestExpression(ctx, item.count, `${path}.length`);
199
+ };
200
+
201
+ export const booleanRandom = (): void => {};
202
+ export const integerRandom = (): void => {};
203
+ export const numberRandom = (): void => {};
204
+ export const stringRandom = (): void => {};
205
+ export const patternRandom = (): void => {};
206
+ export const formatRandom = (): void => {};
207
+ export const keywordRandom = (): void => {};
208
+
209
+ /* -----------------------------------------------------------
210
+ PREDICATORS
211
+ ----------------------------------------------------------- */
212
+ export const equalPredicate = (
213
+ ctx: IAutoBeTextValidateContext,
214
+ item: AutoBeTest.IEqualPredicate,
215
+ path: string,
216
+ ): void => {
217
+ validateTestExpression(ctx, item.x, `${path}.x`);
218
+ validateTestExpression(ctx, item.y, `${path}.y`);
219
+ };
220
+
221
+ export const notEqualPredicate = (
222
+ ctx: IAutoBeTextValidateContext,
223
+ item: AutoBeTest.INotEqualPredicate,
224
+ path: string,
225
+ ): void => {
226
+ validateTestExpression(ctx, item.x, `${path}.x`);
227
+ validateTestExpression(ctx, item.y, `${path}.y`);
228
+ };
229
+
230
+ export const conditionalPredicate = (
231
+ ctx: IAutoBeTextValidateContext,
232
+ item: AutoBeTest.IConditionalPredicate,
233
+ path: string,
234
+ ): void => {
235
+ validateTestExpression(ctx, item.expression, `${path}.condition`);
236
+ };
237
+
238
+ export const errorPredicate = (
239
+ ctx: IAutoBeTextValidateContext,
240
+ item: AutoBeTest.IErrorPredicate,
241
+ path: string,
242
+ ): void => {
243
+ arrowFunction(ctx, item.function, `${path}.function`);
244
+ };
245
+
246
+ // export const httpErrorPredicate = (
247
+ // ctx: IAutoBeTextValidateContext,
248
+ // item: AutoBeTest.IHttpErrorPredicate,
249
+ // path: string,
250
+ // ): void => {
251
+ // arrowFunction(ctx, item.function, `${path}.function`);
252
+ // };
253
+ }
@@ -1,72 +1,72 @@
1
- import { AutoBeTest } from "@autobe/interface";
2
-
3
- import { IAutoBeTextValidateContext } from "./IAutoBeTextValidateContext";
4
- import { validateTestApiOperateStatement } from "./validateTestApiOperateStatement";
5
- import { validateTestExpression } from "./validateTestExpression";
6
- import { validateTestStatement } from "./validateTestStatement";
7
-
8
- export namespace AutoBeTestStatementValidator {
9
- export const block = (
10
- ctx: IAutoBeTextValidateContext,
11
- item: AutoBeTest.IBlock,
12
- path: string,
13
- ): void => {
14
- item.statements.forEach((stmt, i) =>
15
- validateTestStatement(ctx, stmt, `${path}.statements[${i}]`),
16
- );
17
- };
18
-
19
- export const apiOperateStatement = (
20
- ctx: IAutoBeTextValidateContext,
21
- item: AutoBeTest.IApiOperateStatement,
22
- path: string,
23
- ): void => {
24
- validateTestApiOperateStatement(ctx, item, path);
25
- };
26
-
27
- export const expressionStatement = (
28
- ctx: IAutoBeTextValidateContext,
29
- item: AutoBeTest.IExpressionStatement,
30
- path: string,
31
- ): void => {
32
- validateTestExpression(ctx, item.expression, `${path}.expression`);
33
- };
34
-
35
- export const ifStatement = (
36
- ctx: IAutoBeTextValidateContext,
37
- item: AutoBeTest.IIfStatement,
38
- path: string,
39
- ): void => {
40
- validateTestExpression(ctx, item.condition, `${path}.condition`);
41
- block(ctx, item.thenStatement, `${path}.thenStatement`);
42
- if (!!item.elseStatement)
43
- if (item.elseStatement.type === "block")
44
- block(ctx, item.elseStatement, `${path}.elseStatement`);
45
- else
46
- validateTestStatement(ctx, item.elseStatement, `${path}.elseStatement`);
47
- };
48
-
49
- export const returnStatement = (
50
- ctx: IAutoBeTextValidateContext,
51
- item: AutoBeTest.IReturnStatement,
52
- path: string,
53
- ): void => {
54
- validateTestExpression(ctx, item.expression, `${path}.expression`);
55
- };
56
-
57
- export const throwStatement = (
58
- ctx: IAutoBeTextValidateContext,
59
- item: AutoBeTest.IThrowStatement,
60
- path: string,
61
- ): void => {
62
- validateTestExpression(ctx, item.expression, `${path}.expression`);
63
- };
64
-
65
- // export const variableDeclaration = (
66
- // ctx: IAutoBeTextValidateContext,
67
- // item: AutoBeTest.IVariableDeclaration,
68
- // path: string,
69
- // ): void => {
70
- // validateTestExpression(ctx, item.initializer, `${path}.initializer`);
71
- // };
72
- }
1
+ import { AutoBeTest } from "@autobe/interface";
2
+
3
+ import { IAutoBeTextValidateContext } from "./IAutoBeTextValidateContext";
4
+ import { validateTestApiOperateStatement } from "./validateTestApiOperateStatement";
5
+ import { validateTestExpression } from "./validateTestExpression";
6
+ import { validateTestStatement } from "./validateTestStatement";
7
+
8
+ export namespace AutoBeTestStatementValidator {
9
+ export const block = (
10
+ ctx: IAutoBeTextValidateContext,
11
+ item: AutoBeTest.IBlock,
12
+ path: string,
13
+ ): void => {
14
+ item.statements.forEach((stmt, i) =>
15
+ validateTestStatement(ctx, stmt, `${path}.statements[${i}]`),
16
+ );
17
+ };
18
+
19
+ export const apiOperateStatement = (
20
+ ctx: IAutoBeTextValidateContext,
21
+ item: AutoBeTest.IApiOperateStatement,
22
+ path: string,
23
+ ): void => {
24
+ validateTestApiOperateStatement(ctx, item, path);
25
+ };
26
+
27
+ export const expressionStatement = (
28
+ ctx: IAutoBeTextValidateContext,
29
+ item: AutoBeTest.IExpressionStatement,
30
+ path: string,
31
+ ): void => {
32
+ validateTestExpression(ctx, item.expression, `${path}.expression`);
33
+ };
34
+
35
+ export const ifStatement = (
36
+ ctx: IAutoBeTextValidateContext,
37
+ item: AutoBeTest.IIfStatement,
38
+ path: string,
39
+ ): void => {
40
+ validateTestExpression(ctx, item.condition, `${path}.condition`);
41
+ block(ctx, item.thenStatement, `${path}.thenStatement`);
42
+ if (!!item.elseStatement)
43
+ if (item.elseStatement.type === "block")
44
+ block(ctx, item.elseStatement, `${path}.elseStatement`);
45
+ else
46
+ validateTestStatement(ctx, item.elseStatement, `${path}.elseStatement`);
47
+ };
48
+
49
+ export const returnStatement = (
50
+ ctx: IAutoBeTextValidateContext,
51
+ item: AutoBeTest.IReturnStatement,
52
+ path: string,
53
+ ): void => {
54
+ validateTestExpression(ctx, item.expression, `${path}.expression`);
55
+ };
56
+
57
+ export const throwStatement = (
58
+ ctx: IAutoBeTextValidateContext,
59
+ item: AutoBeTest.IThrowStatement,
60
+ path: string,
61
+ ): void => {
62
+ validateTestExpression(ctx, item.expression, `${path}.expression`);
63
+ };
64
+
65
+ // export const variableDeclaration = (
66
+ // ctx: IAutoBeTextValidateContext,
67
+ // item: AutoBeTest.IVariableDeclaration,
68
+ // path: string,
69
+ // ): void => {
70
+ // validateTestExpression(ctx, item.initializer, `${path}.initializer`);
71
+ // };
72
+ }
@@ -1,10 +1,10 @@
1
- import { AutoBeOpenApi, AutoBeTest } from "@autobe/interface";
2
- import { HashMap } from "tstl";
3
- import { IValidation } from "typia";
4
-
5
- export interface IAutoBeTextValidateContext {
6
- function: AutoBeTest.IFunction;
7
- document: AutoBeOpenApi.IDocument;
8
- endpoints: HashMap<AutoBeOpenApi.IEndpoint, AutoBeOpenApi.IOperation>;
9
- errors: IValidation.IError[];
10
- }
1
+ import { AutoBeOpenApi, AutoBeTest } from "@autobe/interface";
2
+ import { HashMap } from "tstl";
3
+ import { IValidation } from "typia";
4
+
5
+ export interface IAutoBeTextValidateContext {
6
+ function: AutoBeTest.IFunction;
7
+ document: AutoBeOpenApi.IDocument;
8
+ endpoints: HashMap<AutoBeOpenApi.IEndpoint, AutoBeOpenApi.IOperation>;
9
+ errors: IValidation.IError[];
10
+ }