From c3df80671a0ea46748ae2b636e056bcf58229d3a Mon Sep 17 00:00:00 2001 From: Tony Yang Date: Thu, 17 Apr 2025 00:36:59 +0800 Subject: [PATCH] feat: add sentry --- functions/_middleware.js | 11 +++++++++++ package-lock.json | 32 +++++++++++++++++++++++++++++++- package.json | 1 + wrangler.toml | 1 + 4 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 functions/_middleware.js diff --git a/functions/_middleware.js b/functions/_middleware.js new file mode 100644 index 0000000..19fed5c --- /dev/null +++ b/functions/_middleware.js @@ -0,0 +1,11 @@ +import * as Sentry from "@sentry/cloudflare"; + +export const onRequest = [ + Sentry.sentryPagesPlugin((context) => ({ + dsn: "https://9d2c460f5e6bca67a47fa821860dceef@o4506857623453696.ingest.us.sentry.io/4509163928944640", + // Set tracesSampleRate to 1.0 to capture 100% of spans for tracing. + // Learn more at + // https://docs.sentry.io/platforms/javascript/configuration/options/#traces-sample-rate + tracesSampleRate: 1.0, + })) +]; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b1ff965..be6e08e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@cloudflare/pages-plugin-hcaptcha": "^1.0.4", "@cloudflare/pages-plugin-turnstile": "^1.0.2", "@hcaptcha/vue3-hcaptcha": "^1.3.0", + "@sentry/cloudflare": "^9.13.0", "file-type": "^20.4.1", "jose": "^6.0.10", "pinia": "^3.0.2", @@ -88,7 +89,7 @@ "version": "4.20250412.0", "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20250412.0.tgz", "integrity": "sha512-ukQE+TRc5HNkM6VvGfTNC9x54TLQKjdcm624F8Qh1ZRe0iJrW2/j1eYgvJABJPexDousYCR7VzCGteShLcBJYQ==", - "dev": true, + "devOptional": true, "license": "MIT OR Apache-2.0" }, "node_modules/@esbuild/aix-ppc64": { @@ -838,6 +839,35 @@ "win32" ] }, + "node_modules/@sentry/cloudflare": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@sentry/cloudflare/-/cloudflare-9.13.0.tgz", + "integrity": "sha512-XaG/Kl5dSUJtzYkalQjaejGhrgFoj5w3cSWoXkxd8J+LXHsq7BFg4S0uCkzGJUmDHItlzfEY8BIaPpgPTJL7MQ==", + "license": "MIT", + "dependencies": { + "@sentry/core": "9.13.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@cloudflare/workers-types": "^4.x" + }, + "peerDependenciesMeta": { + "@cloudflare/workers-types": { + "optional": true + } + } + }, + "node_modules/@sentry/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.13.0.tgz", + "integrity": "sha512-Zn1Qec5XNkNRE/M5QjL6YJLghETg6P188G/v2OzdHdHIRf0Y58/SnJilu3louF+ogos6kaSqqdMgzqKgZ8tCdg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@tokenizer/inflate": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.2.7.tgz", diff --git a/package.json b/package.json index 3163555..0cee320 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "@cloudflare/pages-plugin-hcaptcha": "^1.0.4", "@cloudflare/pages-plugin-turnstile": "^1.0.2", "@hcaptcha/vue3-hcaptcha": "^1.3.0", + "@sentry/cloudflare": "^9.13.0", "file-type": "^20.4.1", "jose": "^6.0.10", "pinia": "^3.0.2", diff --git a/wrangler.toml b/wrangler.toml index d7c4034..e4a5db2 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -1,5 +1,6 @@ name = "ntu-awd-website" pages_build_output_dir = "dist" +compatibility_flags = ["nodejs_compat"] compatibility_date = "2025-04-12" [vars]