@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
82 lines • 2.39 kB
JavaScript
/**
* SPDX-License-Identifier: Apache-2.0
*/
export class SoloError extends Error {
meta;
/**
* Create a custom error object
*
* error metadata will include the `cause`
*
* @param message error message
* @param cause source error (if any)
* @param meta additional metadata (if any)
*/
constructor(message, cause = {}, meta = {}) {
super(message);
this.meta = meta;
this.name = this.constructor.name;
Error.captureStackTrace(this, this.constructor);
if (cause) {
this.cause = cause;
if (cause instanceof Error) {
this.stack += `\nCaused by: ${this.cause.stack}`;
}
}
}
}
export class ResourceNotFoundError extends SoloError {
/**
* Create a custom error for resource not found scenario
*
* error metadata will include `resource`
*
* @param message - error message
* @param resource - name of the resource
* @param cause - source error (if any)
*/
constructor(message, resource, cause = {}) {
super(message, cause, { resource });
}
}
export class MissingArgumentError extends SoloError {
/**
* Create a custom error for missing argument scenario
*
* @param message - error message
* @param cause - source error (if any)
*/
constructor(message, cause = {}) {
super(message, cause);
}
}
export class IllegalArgumentError extends SoloError {
/**
* Create a custom error for illegal argument scenario
*
* error metadata will include `value`
*
* @param message - error message
* @param value - value of the invalid argument
* @param cause - source error (if any)
*/
constructor(message, value = '', cause = {}) {
super(message, cause, { value });
}
}
export class DataValidationError extends SoloError {
/**
* Create a custom error for data validation error scenario
*
* error metadata will include `expected` and `found` values.
*
* @param message - error message
* @param expected - expected value
* @param found - value found
* @param [cause] - source error (if any)
*/
constructor(message, expected, found, cause = {}) {
super(message, cause, { expected, found });
}
}
//# sourceMappingURL=errors.js.map