actionhero
Version:
actionhero.js is a multi-transport API Server with integrated cluster capabilities and delayed tasks
49 lines (48 loc) • 2.22 kB
TypeScript
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;
}