UNPKG

@sprucelabs/spruce-event-utils

Version:

Some helpful utilities to speed up working with Mercury! 🚅

47 lines (46 loc) • 2.17 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const error_1 = __importDefault(require("@sprucelabs/error")); class SpruceError extends error_1.default { /** An easy to understand version of the errors */ friendlyMessage() { const { options } = this; let message; switch (options?.code) { case 'INVALID_EVENT_NAME': message = `I couldn't find an event called ${options.fullyQualifiedEventName}. Next step is 'spruce create.event'!`; break; case 'MERCURY_RESPONSE_ERROR': { const errors = options.responseErrors; message = `Got ${errors.length === 1 ? 'an error' : `${errors.length} errors`} from the server:\n\n`; const errorMessages = []; for (const err of errors) { errorMessages.push(err.stack ?? err.options?.friendlyMessage ?? err.message); } message += errorMessages.join('\n'); break; } case 'EMPTY_MERCURY_RESPONSE': return "Got no results back from the server! That was unexpected. It may be because the event you're listening to does not have a response payload."; case 'DUPLICATE_EVENT': message = `'${options.fullyQualifiedEventName}' event already exists.`; break; case 'EVENT_PLUGIN_ERROR': message = 'A event plugin error just happened!'; break; case 'EVENT_CONTRACTS_NOT_SYNCED': message = `Events have not been synced locally. Try running \`spruce sync.events\`!`; break; default: message = super.friendlyMessage(); } const fullMessage = `${message}${options.friendlyMessage && options.friendlyMessage !== message ? `\n\n${options.friendlyMessage}` : ''}`; return fullMessage; } } exports.default = SpruceError;