♻️ Export bot-engine code into its own package
This commit is contained in:
11
packages/bot-engine/logs/helpers/formatLogDetails.ts
Normal file
11
packages/bot-engine/logs/helpers/formatLogDetails.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { isNotDefined } from '@typebot.io/lib/utils'
|
||||
|
||||
export const formatLogDetails = (details: unknown): string | null => {
|
||||
if (isNotDefined(details)) return null
|
||||
if (details instanceof Error) return details.toString()
|
||||
try {
|
||||
return JSON.stringify(details, null, 2).substring(0, 1000)
|
||||
} catch {
|
||||
return null
|
||||
}
|
||||
}
|
||||
11
packages/bot-engine/logs/saveErrorLog.ts
Normal file
11
packages/bot-engine/logs/saveErrorLog.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { saveLog } from './saveLog'
|
||||
|
||||
export const saveErrorLog = ({
|
||||
resultId,
|
||||
message,
|
||||
details,
|
||||
}: {
|
||||
resultId: string | undefined
|
||||
message: string
|
||||
details?: unknown
|
||||
}) => saveLog({ status: 'error', resultId, message, details })
|
||||
21
packages/bot-engine/logs/saveLog.ts
Normal file
21
packages/bot-engine/logs/saveLog.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import prisma from '@typebot.io/lib/prisma'
|
||||
import { formatLogDetails } from './helpers/formatLogDetails'
|
||||
|
||||
type Props = {
|
||||
status: 'error' | 'success' | 'info'
|
||||
resultId: string | undefined
|
||||
message: string
|
||||
details?: unknown
|
||||
}
|
||||
|
||||
export const saveLog = ({ status, resultId, message, details }: Props) => {
|
||||
if (!resultId || resultId === 'undefined') return
|
||||
return prisma.log.create({
|
||||
data: {
|
||||
resultId,
|
||||
status,
|
||||
description: message,
|
||||
details: formatLogDetails(details) as string | null,
|
||||
},
|
||||
})
|
||||
}
|
||||
11
packages/bot-engine/logs/saveSuccessLog.ts
Normal file
11
packages/bot-engine/logs/saveSuccessLog.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { saveLog } from './saveLog'
|
||||
|
||||
export const saveSuccessLog = ({
|
||||
resultId,
|
||||
message,
|
||||
details,
|
||||
}: {
|
||||
resultId: string | undefined
|
||||
message: string
|
||||
details?: unknown
|
||||
}) => saveLog({ status: 'success', resultId, message, details })
|
||||
Reference in New Issue
Block a user