mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-11 15:16:28 +08:00
2f6c4e3696
Co-authored-by: Hongtao Lye <codert.sn@gmail.com> Co-authored-by: liuyi <forehalo@gmail.com> Co-authored-by: LongYinan <lynweklm@gmail.com> Co-authored-by: X1a0t <405028157@qq.com> Co-authored-by: JimmFly <yangjinfei001@gmail.com> Co-authored-by: Peng Xiao <pengxiao@outlook.com> Co-authored-by: xiaodong zuo <53252747+zuoxiaodong0815@users.noreply.github.com> Co-authored-by: DarkSky <25152247+darkskygit@users.noreply.github.com> Co-authored-by: Qi <474021214@qq.com> Co-authored-by: danielchim <kahungchim@gmail.com>
28 lines
725 B
TypeScript
28 lines
725 B
TypeScript
import { NextFunction, Request, Response } from 'express';
|
|
import onHeaders from 'on-headers';
|
|
|
|
export const serverTimingAndCache = (
|
|
req: Request,
|
|
res: Response,
|
|
next: NextFunction
|
|
) => {
|
|
req.res = res;
|
|
const now = process.hrtime();
|
|
|
|
onHeaders(res, () => {
|
|
const delta = process.hrtime(now);
|
|
const costInMilliseconds = (delta[0] + delta[1] / 1e9) * 1000;
|
|
|
|
const serverTiming = res.getHeader('Server-Timing') as string | undefined;
|
|
const serverTimingValue = `${
|
|
serverTiming ? `${serverTiming}, ` : ''
|
|
}total;dur=${costInMilliseconds}`;
|
|
|
|
res.setHeader('Server-Timing', serverTimingValue);
|
|
});
|
|
|
|
res.setHeader('Cache-Control', 'max-age=0, private, must-revalidate');
|
|
|
|
next();
|
|
};
|