actionhero
Version:
The reusable, scalable, and quick node.js API server for stateless and stateful applications
44 lines (38 loc) • 1.05 kB
text/typescript
import { Action } from "./../index";
function sleep(time: number): Promise<void> {
return new Promise((resolve) => {
setTimeout(resolve, time);
});
}
export class SleepTest extends Action {
constructor() {
super();
this.name = "sleepTest";
this.description = "I will sleep and then return";
this.inputs = {
sleepDuration: {
required: true,
formatter: (n) => {
return parseInt(n);
},
default: () => {
return 1000;
},
},
};
this.outputExample = {
sleepStarted: 1420953571322,
sleepEnded: 1420953572327,
sleepDelta: 1005,
sleepDuration: 1000,
};
}
async run({ params }: { params: { sleepDuration: number } }) {
const sleepDuration = params.sleepDuration;
const sleepStarted = new Date().getTime();
await sleep(sleepDuration);
const sleepEnded = new Date().getTime();
const sleepDelta = sleepEnded - sleepStarted;
return { sleepStarted, sleepEnded, sleepDelta, sleepDuration };
}
}