Files
dify/web/instrumentation-client.ts
+21 0e320290e1 feat: evaluation (#35353)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: jyong <[email protected]>
Co-authored-by: Yansong Zhang <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: hj24 <[email protected]>
Co-authored-by: hj24 <[email protected]>
Co-authored-by: Joel <[email protected]>
Co-authored-by: Stephen Zhou <[email protected]>
Co-authored-by: CodingOnStar <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: 非法操作 <[email protected]>
Co-authored-by: Ayush Baluni <[email protected]>
Co-authored-by: yyh <[email protected]>
Co-authored-by: jimcody1995 <[email protected]>
Co-authored-by: James <[email protected]>
Co-authored-by: Yunlu Wen <[email protected]>
Co-authored-by: Stephen Zhou <[email protected]>
Co-authored-by: Coding On Star <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: jerryzai <[email protected]>
Co-authored-by: NVIDIAN <[email protected]>
Co-authored-by: ai-hpc <[email protected]>
Co-authored-by: Asuka Minato <[email protected]>
Co-authored-by: Junghwan <[email protected]>
Co-authored-by: HeYinKazune <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: yyh <[email protected]>
Co-authored-by: Jingyi <[email protected]>
Co-authored-by: Claude Sonnet 4.6 <[email protected]>
Co-authored-by: sxxtony <[email protected]>
2026-04-17 16:37:21 +08:00

68 lines
1.4 KiB
TypeScript

import { IS_DEV } from '@/config'
import { env } from '@/env'
async function main() {
if (!('localStorage' in globalThis) || !('sessionStorage' in globalThis)) {
class StorageMock {
data: Record<string, string>
constructor() {
this.data = {} as Record<string, string>
}
setItem(name: string, value: string) {
this.data[name] = value
}
getItem(name: string) {
return this.data[name] || null
}
removeItem(name: string) {
delete this.data[name]
}
clear() {
this.data = {}
}
}
let localStorage, sessionStorage
try {
localStorage = globalThis.localStorage
sessionStorage = globalThis.sessionStorage
}
catch {
localStorage = new StorageMock()
sessionStorage = new StorageMock()
}
Object.defineProperty(globalThis, 'localStorage', {
value: localStorage,
})
Object.defineProperty(globalThis, 'sessionStorage', {
value: sessionStorage,
})
}
const SENTRY_DSN = env.NEXT_PUBLIC_SENTRY_DSN
if (!IS_DEV && SENTRY_DSN) {
const Sentry = await import('@sentry/react')
Sentry.init({
dsn: SENTRY_DSN,
integrations: [
Sentry.browserTracingIntegration(),
Sentry.replayIntegration(),
],
tracesSampleRate: 0.1,
replaysSessionSampleRate: 0.1,
replaysOnErrorSampleRate: 1.0,
})
}
}
main()