UNPKG

tester-scraper

Version:

Sebuah Module Scraper yang dibuat oleh Sxyz dan SuzakuTeam untuk memudahkan penggunaan scraper di project ESM maupun CJS.

86 lines (77 loc) 2.25 kB
class Success { constructor(dataResults) { if ( dataResults === undefined || dataResults === null || (Array.isArray(dataResults) && dataResults.length === 0) || (typeof dataResults === "object" && !Array.isArray(dataResults) && Object.keys(dataResults).length === 0) ) { throw new Error("No data found"); } // Handle different types of success responses let result; if (typeof dataResults === "object" && dataResults !== null) { // If it's already a well-formed response object, use it directly if ( dataResults.success !== undefined && dataResults.result !== undefined ) { result = dataResults; } else { // Wrap plain objects/arrays in a standard success structure result = { success: true, error: false, result: dataResults, }; } } else { // Handle primitive values (string, number, boolean) result = { success: true, error: false, result: dataResults, }; } return result; } } class ErrorResponse { constructor(err) { let message = "Unknown error"; let code; let data; let details; if (typeof err === "string") { message = err; } else if (err?.response) { // Handle HTTP error responses message = err.response.data?.message || err.message || "Request failed"; code = err.response.status; data = err.response.data; details = err.response.data?.errors || err.response.data?.details; } else if (err instanceof Error) { // Handle Error objects message = err.message; details = err.stack; } else if (typeof err === "object" && err !== null) { // Handle custom error objects message = err.message || err.msg || JSON.stringify(err); code = err.code || err.status || err.statusCode; data = err.data; details = err.details || err.errors || err.stack; } const res = { success: false, error: true, message, }; if (code) res.code = code; if (data) res.data = data; if (details) res.details = details; return res; } } export { Success, ErrorResponse };