UNPKG

gauge-ts

Version:
44 lines (43 loc) 1.6 kB
"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;