From beefa3d638dcc8a1c236ce0efd62e141347e3389 Mon Sep 17 00:00:00 2001 From: Dmytro Pustovit Date: Fri, 23 Apr 2021 20:51:45 +0300 Subject: [PATCH] New: adds basic errors --- src/Error.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/Error.js diff --git a/src/Error.js b/src/Error.js new file mode 100644 index 0000000..aeb45da --- /dev/null +++ b/src/Error.js @@ -0,0 +1,35 @@ +export default class SemanticReleaseHerokuError extends Error { + #payload; + + constructor(payload) { + super(); + + this.name = this.constructor.name; + this.#payload = payload; + + Error.captureStackTrace(this, this.constructor); + } + + get payload() { + return this.#payload; + } +} + +export class VERIFICATION_MISSED extends SemanticReleaseHerokuError { + message = `verifyConditions should be passed to run step [${this.payload}]` +} + +export class VALIDATION_FAILED extends SemanticReleaseHerokuError { + message = JSON.stringify(this.payload) +} + +export class API_ERROR extends SemanticReleaseHerokuError { + get message() { + const message = this.payload.toString(); + const inner = this.payload?.response?.data; + + if (inner) return [ message, JSON.stringify(inner) ].join(' '); + + return message; + } +}