UNPKG

actionhero

Version:

The reusable, scalable, and quick node.js API server for stateless and stateful applications

53 lines (52 loc) 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.action = void 0; const connection_1 = require("../classes/connection"); const actionProcessor_1 = require("../classes/actionProcessor"); const index_1 = require("../index"); var action; (function (action) { /** * Add a middleware component available to pre or post-process actions. */ function addMiddleware(data) { if (!data.name) { throw new Error("middleware.name is required"); } if (!data.priority) { data.priority = index_1.config.general.defaultMiddlewarePriority; } data.priority = Number(data.priority); index_1.api.actions.middleware[data.name] = data; if (data.global === true) { index_1.api.actions.globalMiddleware.push(data.name); index_1.utils.sortGlobalMiddleware(index_1.api.actions.globalMiddleware, index_1.api.actions.middleware); } } action.addMiddleware = addMiddleware; /** * Run an Action in-line, perhaps from within another Action or Task. */ async function run(actionName, actionVersion, params = {}, connectionProperties = {}) { const connection = new connection_1.Connection({ type: "in-line-action", remotePort: "0", remoteIP: "0", rawConnection: {}, canChat: false, }); connection.params = params; Object.assign(connection, connectionProperties); try { const actionProcessor = new actionProcessor_1.ActionProcessor(connection); const data = await actionProcessor.processAction(actionName, actionVersion); if (data.response.error) throw new Error(data.response.error); return data.response; } finally { await connection.destroy(); } } action.run = run; })(action || (exports.action = action = {}));