@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.
- package/LICENSE +661 -661
- package/README.md +261 -0
- package/lib/AutoBeEscaper.d.ts +4 -0
- package/lib/AutoBeEscaper.js +85 -0
- package/lib/AutoBeEscaper.js.map +1 -0
- package/lib/StringUtil.d.ts +1 -0
- package/lib/StringUtil.js +15 -36
- package/lib/StringUtil.js.map +1 -1
- package/lib/aggregate/AutoBeProcessAggregateFactory.js +9 -0
- package/lib/aggregate/AutoBeProcessAggregateFactory.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/interface/AutoBeOpenApiEndpointComparator.d.ts +1 -0
- package/lib/interface/AutoBeOpenApiEndpointComparator.js +4 -0
- package/lib/interface/AutoBeOpenApiEndpointComparator.js.map +1 -1
- package/lib/interface/AutoBeOpenApiTypeChecker.d.ts +14 -0
- package/lib/interface/AutoBeOpenApiTypeChecker.js +67 -0
- package/lib/interface/AutoBeOpenApiTypeChecker.js.map +1 -1
- package/lib/interface/invertOpenApiDocument.d.ts +1 -1
- package/lib/interface/invertOpenApiDocument.js +22 -7
- package/lib/interface/invertOpenApiDocument.js.map +1 -1
- package/lib/interface/missedOpenApiSchemas.js +3 -3
- package/lib/interface/missedOpenApiSchemas.js.map +1 -1
- package/lib/interface/revertOpenApiAccessor.js +2 -2
- package/lib/interface/revertOpenApiAccessor.js.map +1 -1
- package/lib/interface/transformOpenApiDocument.d.ts +2 -2
- package/lib/interface/transformOpenApiDocument.js +14 -11
- package/lib/interface/transformOpenApiDocument.js.map +1 -1
- package/lib/prisma/writePrismaApplication.d.ts +2 -2
- package/lib/prisma/writePrismaApplication.js +75 -66
- package/lib/prisma/writePrismaApplication.js.map +1 -1
- package/lib/test/validateTestExpression.js +3 -1
- package/lib/test/validateTestExpression.js.map +1 -1
- package/lib/test/validateTestStatement.js +3 -1
- package/lib/test/validateTestStatement.js.map +1 -1
- package/package.json +5 -5
- package/src/ArrayUtil.ts +21 -21
- package/src/AutoBeEscaper.ts +83 -0
- package/src/MapUtil.ts +10 -10
- package/src/StringUtil.ts +34 -59
- package/src/aggregate/AutoBeFunctionCallingMetricFactory.ts +44 -44
- package/src/aggregate/AutoBeProcessAggregateFactory.ts +161 -152
- package/src/aggregate/TokenUsageComputer.ts +49 -49
- package/src/aggregate/index.ts +3 -3
- package/src/index.ts +10 -9
- package/src/interface/AutoBeOpenApiEndpointComparator.ts +27 -20
- package/src/interface/AutoBeOpenApiTypeChecker.ts +127 -43
- package/src/interface/index.ts +6 -6
- package/src/interface/invertOpenApiDocument.ts +80 -68
- package/src/interface/missedOpenApiSchemas.ts +25 -25
- package/src/interface/revertOpenApiAccessor.ts +25 -25
- package/src/interface/transformOpenApiDocument.ts +94 -91
- package/src/prisma/index.ts +1 -1
- package/src/prisma/writePrismaApplication.ts +456 -439
- package/src/test/AutoBeTestExpressionValidator.ts +253 -253
- package/src/test/AutoBeTestStatementValidator.ts +72 -72
- package/src/test/IAutoBeTextValidateContext.ts +10 -10
- package/src/test/index.ts +2 -2
- package/src/test/validateTestApiOperateStatement.ts +92 -92
- package/src/test/validateTestExpression.ts +16 -10
- package/src/test/validateTestFunction.ts +7 -7
- 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
|
+
}
|