UNPKG

actionhero

Version:

actionhero.js is a multi-transport API Server with integrated cluster capabilities and delayed tasks

49 lines (48 loc) 2.22 kB
import { Inputs } from "./inputs"; import { ActionProcessor } from "./actionProcessor"; /** * Create a new Actionhero Action. The required properties of an action. These can be defined statically (this.name) or as methods which return a value. *```js * const { Action } = require('actionhero') * module.exports = class RandomNumber extends Action { * constructor () { * super() * this.name = 'randomNumber' * this.description = 'I am an API method which will generate a random number' * this.outputExample = { randomNumber: 0.1234 } * } * async run ({ response }) { * response.randomNumber = Math.random() * } *} *``` */ export declare abstract class Action { /**The name of the Action*/ name: string; /**The description of the Action (default this.name)*/ description: string; /**The version of this Action (default: 1) */ version: number | string; outputExample: object; /**The inputs of the Action (default: {}) */ inputs: Inputs; /**The Middleware specific to this Action (default: []). Middleware is described by the string names of the middleware. */ middleware: Array<string>; /**Are there connections from any servers which cannot use this Action (default: [])? */ blockedConnectionTypes: Array<string>; /**Under what level should connections to this Action be logged (default 'info')? */ logLevel: string; /**If this Action is responding to a `web` request, and that request has a file extension like *.jpg, should Actionhero set the response headers to match that extension (default: true)? */ matchExtensionMimeType: boolean; /**Should this Action appear in api.documentation.documentation? (default: true)? */ toDocument: boolean; constructor(); /** * The main "do something" method for this action. It can be `async`. Usually the goal of this run method is to set properties on `data.response`. If error is thrown in this method, it will be logged, caught, and appended to `data.response.error` * @param data The data about this connection, response, and params. */ abstract run(data: ActionProcessor): Promise<void>; private defaults; validate(): void; }