gauge-ts
Version:
Typescript runner for Gauge
44 lines (43 loc) • 1.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CodeHelper = void 0;
const typescript_1 = require("typescript");
class CodeHelper {
printer = (0, typescript_1.createPrinter)();
getStepTexts(method) {
const dec = (0, typescript_1.getDecorators)(method);
const stepDecExp = dec.filter(CodeHelper.isStepDecorator)[0]
.expression;
const arg = stepDecExp.arguments[0];
if (!arg.text && arg.elements) {
return arg.elements.map((e) => {
return e.text;
});
}
return [arg.text];
}
static isStepDecorator(d) {
const decExp = d.expression;
return decExp.expression.escapedText === "Step";
}
hasStepDecorator(method) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const decorators = (0, typescript_1.getDecorators)(method);
// eslint-disable-next-line padding-line-between-statements
return !!decorators && decorators.some(CodeHelper.isStepDecorator);
}
hasStepText(method, stepText) {
const dec = (0, typescript_1.getDecorators)(method);
const stepDecExp = dec.filter(CodeHelper.isStepDecorator)[0]
.expression;
const arg = stepDecExp.arguments[0];
if (!arg.text && arg.elements) {
return arg.elements.some((e) => {
return e.text === stepText;
});
}
return arg.text === stepText;
// eslint-disable-next-line padded-blocks
}
}
exports.CodeHelper = CodeHelper;