mirror of
https://github.com/TheNetsky/Microsoft-Rewards-Script.git
synced 2026-01-23 00:11:05 +00:00
v3 init
Based of v3.0.0b10.
This commit is contained in:
46
src/util/ErrorDiagnostic.ts
Normal file
46
src/util/ErrorDiagnostic.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import fs from 'fs/promises'
|
||||
import path from 'path'
|
||||
import type { Page } from 'patchright'
|
||||
|
||||
export async function errorDiagnostic(page: Page, error: Error): Promise<void> {
|
||||
try {
|
||||
const timestamp = new Date().toISOString().replace(/[:.]/g, '-')
|
||||
const folderName = `error-${timestamp}`
|
||||
const outputDir = path.join(process.cwd(), 'diagnostics', folderName)
|
||||
|
||||
if (!page) {
|
||||
return
|
||||
}
|
||||
|
||||
if (page.isClosed()) {
|
||||
return
|
||||
}
|
||||
|
||||
// Error log content
|
||||
const errorLog = `
|
||||
Name: ${error.name}
|
||||
Message: ${error.message}
|
||||
Timestamp: ${new Date().toISOString()}
|
||||
---------------------------------------------------
|
||||
Stack Trace:
|
||||
${error.stack || 'No stack trace available'}
|
||||
`.trim()
|
||||
|
||||
const [htmlContent, screenshotBuffer] = await Promise.all([
|
||||
page.content(),
|
||||
page.screenshot({ fullPage: true, type: 'png' })
|
||||
])
|
||||
|
||||
await fs.mkdir(outputDir, { recursive: true })
|
||||
|
||||
await Promise.all([
|
||||
fs.writeFile(path.join(outputDir, 'dump.html'), htmlContent),
|
||||
fs.writeFile(path.join(outputDir, 'screenshot.png'), screenshotBuffer),
|
||||
fs.writeFile(path.join(outputDir, 'error.txt'), errorLog)
|
||||
])
|
||||
|
||||
console.log(`Diagnostics saved to: ${outputDir}`)
|
||||
} catch (error) {
|
||||
console.error('Unable to create error diagnostics:', error)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user