UNPKG

actionhero

Version:

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

54 lines (53 loc) 2.27 kB
import { Inputs } from "./inputs"; /** * 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 * import { Action } from "actionhero"; * * export default 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: { [key: string]: any; }): Promise<ActionResponse>; private defaults; validate(): void; } export declare type ActionResponse = { [key: string]: any; } | null | void;