From 25a9b9cfe0eebea07aa63210a0a71ab0836a98e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammed=20Tanr=C4=B1kulu?= Date: Mon, 18 Dec 2023 14:58:54 +0100 Subject: [PATCH] create example of logging result --- src/worker.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/worker.ts b/src/worker.ts index d95eac5..b336164 100644 --- a/src/worker.ts +++ b/src/worker.ts @@ -27,6 +27,22 @@ const routeHandler = (env: ENV, trackEvent?: Function) => { return app; }; +const logResult = async (request, result: Response) => { + if (!result.body) { + return result; + } + const [streamForLog, streamForResult] = result.body.tee(); + const logResult = await new Response(streamForLog).json(); + + await tracker.trackEvent( + request, + 'result', + { props: { result: logResult.data.substring(0, 200) } }, + true + ); + return new Response(streamForResult, result); +}; + module.exports = { fetch: async function( request: CFWRequest, @@ -36,6 +52,6 @@ module.exports = { await tracker.trackEvent(request, 'request', {}, true); await tracker.trackPageview(request, {}, true); const router = routeHandler(env, tracker.trackEvent.bind(tracker, request)); - return await router.handle(request); + return router.handle(request).then(logResult.bind(this, request)); }, };