UNPKG

@ply-ct/ply

Version:

REST API Automated Testing

102 lines 4.33 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExecFactory = void 0; const process = __importStar(require("process")); const path = __importStar(require("path")); const request_1 = require("./request"); const start_1 = require("./start"); const stop_1 = require("./stop"); const decide_1 = require("./decide"); const delay_1 = require("./delay"); const value_1 = require("./value"); const subflow_1 = require("./subflow"); const websocket_1 = require("./websocket"); const log_1 = require("./log"); const sync_1 = require("./sync"); const legacy_1 = require("./legacy"); class ExecFactory { static async create(context) { var _a, _b; const step = context.step; if (step.path === 'start') return new start_1.StartExec(); else if (step.path === 'stop') return new stop_1.StopExec(); else if (step.path === 'request') return new request_1.RequestExec(); else if (step.path === 'decide') return new decide_1.DecideExec(); else if (step.path === 'delay') return new delay_1.DelayExec(); else if (step.path === 'log') return new log_1.LogExec(); else if (step.path === 'value') return new value_1.ValueExec(); else if (step.path === 'subflow') return new subflow_1.SubflowExec(); else if (step.path === 'websocket') return new websocket_1.WebsocketExec(); else if (step.path === 'sync') return new sync_1.SyncExec(); else if (step.path === 'typescript' || step.path.endsWith('.ts')) { const type = step.path === 'typescript' ? 'TypeScript' : 'Custom'; let tsFile; if (type === 'TypeScript') { if (!((_a = step.attributes) === null || _a === void 0 ? void 0 : _a.tsFile)) { throw new Error(`Step ${step.id} missing attribute: tsFile`); } tsFile = step.attributes.tsFile; } else { tsFile = step.path; } if ((_b = context.runOptions) === null || _b === void 0 ? void 0 : _b.stepsBase) { tsFile = `${context.runOptions.stepsBase}/${tsFile}`; } if (!path.isAbsolute(tsFile)) tsFile = path.join(process.cwd(), tsFile); tsFile = path.normalize(tsFile); const mod = await Promise.resolve().then(() => __importStar(require(tsFile))); if (typeof mod.default !== 'function') { throw new Error(`${type} step module must export PlyExec implementor class as default: ${tsFile}`); } let exec; if (mod.default.legacy) { exec = new legacy_1.LegacyExec(new mod.default(step, context.stepInstance, context.logger)); } else { exec = new mod.default(); } if (typeof exec.run !== 'function') { throw new Error(`${type} step module must implement run() method: ${tsFile}`); } return exec; } throw new Error(`Unsupported step: ${step.path}`); } } exports.ExecFactory = ExecFactory; //# sourceMappingURL=factory.js.map