web3-error-helper
Version:
> 🛠️ Turn confusing Web3 errors into clear, human-friendly messages for developers and users alike.
48 lines (47 loc) • 1.66 kB
JavaScript
/**
* Error type detection utilities
*
* This module provides intelligent error type classification based on
* error message content. It uses keyword matching to automatically
* categorize errors into specific types (wallet, network, contract, etc.)
* for better fallback message selection and error handling.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.detectErrorType = detectErrorType;
exports.isErrorType = isErrorType;
exports.getMatchingErrorTypes = getMatchingErrorTypes;
const types_1 = require("../types");
/**
* Detect error type based on error message keywords
*/
function detectErrorType(errorMessage) {
const message = errorMessage.toLowerCase();
for (const [errorType, keywords] of Object.entries(types_1.ERROR_TYPE_KEYWORDS)) {
if (keywords.some(keyword => message.includes(keyword))) {
return errorType;
}
}
return null;
}
/**
* Check if error message contains specific error type keywords
*/
function isErrorType(errorMessage, errorType) {
const message = errorMessage.toLowerCase();
const keywords = types_1.ERROR_TYPE_KEYWORDS[errorType];
return keywords.some(keyword => message.includes(keyword));
}
/**
* Get all error types that match the error message
*/
function getMatchingErrorTypes(errorMessage) {
const message = errorMessage.toLowerCase();
const matchingTypes = [];
for (const [errorType, keywords] of Object.entries(types_1.ERROR_TYPE_KEYWORDS)) {
if (keywords.some(keyword => message.includes(keyword))) {
matchingTypes.push(errorType);
}
}
return matchingTypes;
}
;