@ -6,10 +6,10 @@
|
||||
"main": "./index.ts",
|
||||
"types": "./index.ts",
|
||||
"devDependencies": {
|
||||
"@paralleldrive/cuid2": "2.2.0",
|
||||
"@playwright/test": "1.31.1",
|
||||
"@types/nodemailer": "6.4.7",
|
||||
"aws-sdk": "2.1321.0",
|
||||
"@paralleldrive/cuid2": "2.2.0",
|
||||
"db": "workspace:*",
|
||||
"dotenv": "16.0.3",
|
||||
"models": "workspace:*",
|
||||
@ -22,5 +22,8 @@
|
||||
"aws-sdk": "2.1152.0",
|
||||
"next": "13.0.0",
|
||||
"nodemailer": "6.7.8"
|
||||
},
|
||||
"dependencies": {
|
||||
"got": "12.5.3"
|
||||
}
|
||||
}
|
||||
|
29
packages/utils/telemetry/sendTelemetryEvent.ts
Normal file
29
packages/utils/telemetry/sendTelemetryEvent.ts
Normal file
@ -0,0 +1,29 @@
|
||||
import got from 'got'
|
||||
import { TelemetryEvent } from 'models/features/telemetry'
|
||||
import { isEmpty, isNotEmpty } from '../utils'
|
||||
|
||||
export const sendTelemetryEvents = async (events: TelemetryEvent[]) => {
|
||||
if (isEmpty(process.env.TELEMETRY_WEBHOOK_URL))
|
||||
return { message: 'Telemetry not enabled' }
|
||||
|
||||
try {
|
||||
await got.post(process.env.TELEMETRY_WEBHOOK_URL, {
|
||||
json: { events },
|
||||
headers: {
|
||||
authorization: isNotEmpty(process.env.TELEMETRY_WEBHOOK_BEARER_TOKEN)
|
||||
? `Bearer ${process.env.TELEMETRY_WEBHOOK_BEARER_TOKEN}`
|
||||
: undefined,
|
||||
},
|
||||
})
|
||||
} catch (err) {
|
||||
console.error('Failed to send event', err)
|
||||
return {
|
||||
message: 'Failed to send event',
|
||||
error: err instanceof Error ? err.message : 'Unknown error',
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
message: 'Event sent',
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user