UNPKG

@solarity/hardhat-migrate

Version:
45 lines 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.catchError = catchError; const errors_1 = require("../errors"); function catchError(target, propertyName, descriptor) { // Method decorator if (descriptor) { _generateDescriptor(propertyName, descriptor); } // Class decorator else { for (const propertyName of Reflect.ownKeys(target.prototype).filter((prop) => prop !== "constructor")) { const desc = Object.getOwnPropertyDescriptor(target.prototype, propertyName); const isMethod = desc.value instanceof Function; if (!isMethod) continue; Object.defineProperty(target.prototype, propertyName, _generateDescriptor(`${target.prototype.constructor.name}.${propertyName.toString()}`, desc)); } } } function _generateDescriptor(propertyName, descriptor) { const method = descriptor.value; descriptor.value = function ___ErrorCatcher(...args) { try { const result = method.apply(this, args); // Check if the method is asynchronous if (result && result instanceof Promise) { // Return promise return result.catch((e) => { _handleError(propertyName, e); }); } // Return actual result return result; } catch (e) { _handleError(propertyName, e); } }; return descriptor; } function _handleError(propertyName, error) { throw new errors_1.MigrateError(`${propertyName}(): ${error.message ?? error}`, { cause: error }); } //# sourceMappingURL=error.js.map