Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 17x 17x 1x 12x 12x 12x 72x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 5x 5x | export interface FPJSResponse {
v: '2'
notifications?: Notification[]
requestId: string
error?: ErrorData
products: {}
}
export interface Notification {
level: 'info' | 'warning' | 'error'
message: string
}
export interface ErrorData {
code?: 'IntegrationFailed'
message: string
}
function errorToString(error: string | Error | unknown): string {
try {
return typeof error === 'string' ? error : error instanceof Error ? error.message : String(error)
} catch (e) {
return 'unknown'
}
}
function generateRandomString(length: number): string {
let result = ''
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length))
}
return result
}
function generateRequestUniqueId(): string {
return generateRandomString(6)
}
function generateRequestId(): string {
const uniqueId = generateRequestUniqueId()
const now = new Date().getTime()
return `${now}.${uniqueId}`
}
export function createErrorResponseForIngress(request: Request, error: string | Error | unknown): Response {
const reason = errorToString(error)
const errorBody: ErrorData = {
code: 'IntegrationFailed',
message: `An error occurred with Cloudflare worker. Reason: ${reason}`,
}
const responseBody: FPJSResponse = {
v: '2',
error: errorBody,
requestId: generateRequestId(),
products: {},
}
const requestOrigin = request.headers.get('origin') || ''
const responseHeaders: HeadersInit = {
'Access-Control-Allow-Origin': requestOrigin,
'Access-Control-Allow-Credentials': 'true',
'content-type': 'application/json',
}
return new Response(JSON.stringify(responseBody), { status: 500, headers: responseHeaders })
}
export function createFallbackErrorResponse(error: string | Error | unknown): Response {
const responseBody = { error: errorToString(error) }
return new Response(JSON.stringify(responseBody), { status: 500, headers: { 'content-type': 'application/json' } })
}
|