@autobe/compiler
Version:
AI backend server code generator
133 lines • 8.65 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AutoBeTestRandomProgrammer = void 0;
const typescript_1 = __importDefault(require("typescript"));
const writeTestExpression_1 = require("./writeTestExpression");
var AutoBeTestRandomProgrammer;
(function (AutoBeTestRandomProgrammer) {
AutoBeTestRandomProgrammer.pickRandom = (ctx, expr) => typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(ctx.importer.external({
type: "instance",
library: "@nestia/e2e",
name: "RandomGenerator",
})), "pick"), undefined, [(0, writeTestExpression_1.writeTestExpression)(ctx, expr.array)]);
AutoBeTestRandomProgrammer.sampleRandom = (ctx, expr) => typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(ctx.importer.external({
type: "instance",
library: "@nestia/e2e",
name: "RandomGenerator",
})), "sample"), undefined, [
(0, writeTestExpression_1.writeTestExpression)(ctx, expr.array),
(0, writeTestExpression_1.writeTestExpression)(ctx, expr.count),
]);
AutoBeTestRandomProgrammer.booleanRandom = (_ctx, expr) => {
var _a;
return typescript_1.default.factory.createLessThanEquals(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("Math"), "random"), undefined, undefined), typescript_1.default.factory.createNumericLiteral((_a = expr.probability) !== null && _a !== void 0 ? _a : 0.5));
};
AutoBeTestRandomProgrammer.integerRandom = (ctx, expr) => {
const intersection = [
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword),
createTypiaTag(ctx, "Type", [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("int32")),
]),
];
if (expr.minimum !== null && expr.minimum !== undefined)
intersection.push(createTypiaTag(ctx, "Minimum", [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNumericLiteral(expr.minimum)),
]));
if (expr.maximum !== null && expr.maximum !== undefined)
intersection.push(createTypiaTag(ctx, "Maximum", [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNumericLiteral(expr.maximum)),
]));
if (expr.multipleOf !== null && expr.multipleOf !== undefined)
intersection.push(createTypiaTag(ctx, "MultipleOf", [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNumericLiteral(expr.multipleOf)),
]));
return createTypiaRandom(ctx, intersection);
};
AutoBeTestRandomProgrammer.numberRandom = (ctx, expr) => {
const intersection = [
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword),
];
if (expr.minimum !== null && expr.minimum !== undefined)
intersection.push(createTypiaTag(ctx, "Minimum", [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNumericLiteral(expr.minimum)),
]));
if (expr.maximum !== null && expr.maximum !== undefined)
intersection.push(createTypiaTag(ctx, "Maximum", [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNumericLiteral(expr.maximum)),
]));
if (expr.multipleOf !== null && expr.multipleOf !== undefined)
intersection.push(createTypiaTag(ctx, "MultipleOf", [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNumericLiteral(expr.multipleOf)),
]));
return createTypiaRandom(ctx, intersection);
};
AutoBeTestRandomProgrammer.stringRandom = (ctx, expr) => {
const intersection = [
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
];
if (expr.minLength !== null && expr.minLength !== undefined)
intersection.push(createTypiaTag(ctx, "MinLength", [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNumericLiteral(expr.minLength)),
]));
if (expr.maxLength !== null && expr.maxLength !== undefined)
intersection.push(createTypiaTag(ctx, "MaxLength", [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNumericLiteral(expr.maxLength)),
]));
return createTypiaRandom(ctx, intersection);
};
AutoBeTestRandomProgrammer.formatRandom = (ctx, expr) => typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(ctx.importer.external({
type: "default",
library: "typia",
name: "typia",
})), "random"), [
typescript_1.default.factory.createIntersectionTypeNode([
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier(ctx.importer.external({
type: "instance",
library: "typia",
name: "tags",
})), typescript_1.default.factory.createIdentifier("Format")), [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(expr.format)),
]),
]),
], []);
AutoBeTestRandomProgrammer.patternRandom = (ctx, expr) => typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(ctx.importer.external({
type: "default",
library: "typia",
name: "typia",
})), "random"), [
typescript_1.default.factory.createIntersectionTypeNode([
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier(ctx.importer.external({
type: "instance",
library: "typia",
name: "tags",
})), typescript_1.default.factory.createIdentifier("Pattern")), [
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(expr.pattern)),
]),
]),
], []);
AutoBeTestRandomProgrammer.keywordRandom = (ctx, expr) => typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(ctx.importer.external({
type: "instance",
library: "@nestia/e2e",
name: "RandomGenerator",
})), expr.keyword), undefined, undefined);
})(AutoBeTestRandomProgrammer || (exports.AutoBeTestRandomProgrammer = AutoBeTestRandomProgrammer = {}));
const createTypiaTag = (ctx, name, typeArguments) => typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier(ctx.importer.external({
type: "instance",
library: "typia",
name: "tags",
})), typescript_1.default.factory.createIdentifier(name)), typeArguments);
const createTypiaRandom = (ctx, typeArguments = []) => typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(ctx.importer.external({
type: "default",
library: "typia",
name: "typia",
})), "random"), typeArguments.length === 0
? undefined
: typeArguments.length === 1
? typeArguments
: [typescript_1.default.factory.createIntersectionTypeNode(typeArguments)], undefined);
//# sourceMappingURL=AutoBeTestRandomProgrammer.js.map