UNPKG

@sprucelabs/spruce-event-utils

Version:

Some helpful utilities to speed up working with Mercury! 🚅

42 lines (41 loc) • 2.12 kB
import BaseSpruceError from '@sprucelabs/error'; export default class SpruceError extends BaseSpruceError { /** An easy to understand version of the errors */ friendlyMessage() { var _a, _b, _c; const { options } = this; let message; switch (options === null || options === void 0 ? void 0 : 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((_c = (_a = err.stack) !== null && _a !== void 0 ? _a : (_b = err.options) === null || _b === void 0 ? void 0 : _b.friendlyMessage) !== null && _c !== void 0 ? _c : 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; } }