* 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>
30 lines
952 B
TypeScript
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;
|