Files
cal.diy/packages/lib/server/defaultResponder.ts
T
1960046994 App/exchange v2 (#2493)
* Create 2013 package

* Create 2016 package

* Add ews

* Update package.json

* Translate 2013 app to new structure

* Translate 2013 app to new structure

* Translate 2016 app to new structure

* Add appId

* Move setup to a seperate page

* RHF dependency version mismatch

* Move exchange 2016 setup to new page

* Add translations

* Relying on AppSetupMap not defined static pages

* Console build fixes

* Resolved node version to 16

* Prisma errors can't be handled on client

* Fixes node version mismatches

* Improvements

* Endpoint fixes

* Revert "Endpoint fixes"

This reverts commit c0320e3f3d320091ee9a049e3abaf285169ed555.

* Fixes

Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Leo Giovanetti <hello@leog.me>
2022-06-13 16:12:27 -06:00

30 lines
952 B
TypeScript

import type { NextApiRequest, NextApiResponse } from "next";
import { performance } from "perf_hooks";
import { perfObserver } from ".";
import { getServerErrorFromUnkown } from "./getServerErrorFromUnkown";
type Handle<T> = (req: NextApiRequest, res: NextApiResponse) => Promise<T>;
perfObserver.observe({ type: "measure" });
/** Allows us to get type inference from API handler responses */
function defaultResponder<T>(f: Handle<T>) {
return async (req: NextApiRequest, res: NextApiResponse) => {
try {
performance.mark("Start");
const result = await f(req, res);
if (result) res.json(result);
} catch (err) {
const error = getServerErrorFromUnkown(err);
res.statusCode = error.statusCode;
res.json({ message: error.message });
} finally {
performance.mark("End");
performance.measure("Measuring endpoint: " + req.url, "Start", "End");
}
};
}
export default defaultResponder;