@scefira/dfw-nodejs
Version:
33 lines (24 loc) • 1 kB
text/typescript
import DFWModule from "./DFWModule.";
import { DFWScheme } from "../..";
import DFWInstance from "../system/DFWInstance";
import { Request, Response, Router, Express } from "express";
export default class APIManager extends DFWModule{
public async touchAsync(dfw:DFWScheme){
}
public async fetchAsync(){
}
public add(path:string,f:(dfw:DFWScheme) => Promise<any>,method:"get"|"put"|"post"|"delete" = "get",router?:Router|Express){
if(this.DFWInstance.server === undefined){
console.error("> you need to start DFW express server (DFW.startServer) to add an API listener");
return;
}
if(router === undefined){
router = this.DFWInstance.server;
}
router[method](path,(req:Request,res:Response)=>{
this.DFWInstance.touchAsync(req,res).then( async (dfw:DFWScheme)=>{
dfw.response.json( await f(dfw));
})
})
}
}