actionhero
Version:
actionhero.js is a multi-transport API Server with integrated cluster capabilities and delayed tasks
49 lines (43 loc) • 1.2 kB
text/typescript
import { api, Initializer } from "../index";
export interface DocumentationApi {
documentation: {
[key: string]: any;
};
build: Function;
}
/**
* Documentation of Actions.
*/
export class Documentation extends Initializer {
constructor() {
super();
this.name = "documentation";
this.loadPriority = 999;
}
async initialize() {
api.documentation = {
documentation: {},
build: () => {
let action;
for (const i in api.actions.actions) {
for (const j in api.actions.actions[i]) {
action = api.actions.actions[i][j];
if (action.toDocument !== false) {
if (!api.documentation.documentation[action.name]) {
api.documentation.documentation[action.name] = {};
}
api.documentation.documentation[action.name][action.version] = {
name: action.name,
version: action.version,
description: action.description,
inputs: action.inputs,
outputExample: action.outputExample,
};
}
}
}
},
};
api.documentation.build();
}
}