UNPKG

forest-cli

Version:

The Lumberjacks' toolbelt is the Forest CLI which makes easy to manage your back office application directly from the terminal.

37 lines 3.21 kB
"use strict"; /** Errors raised by the layout commands' HTTP adapter. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.toLayoutApiError = exports.extractDetail = exports.LayoutApiError = void 0; /** A non-2xx response from a layout endpoint, normalized to status + detail. */ class LayoutApiError extends Error { constructor(status, detail) { super(`Forest API error ${status}: ${detail}`); this.name = 'LayoutApiError'; this.status = status; this.detail = detail; } } exports.LayoutApiError = LayoutApiError; /** Extract a readable message from a JSON:API error document (or raw text). */ function extractDetail(body) { if (body && typeof body === 'object') { const parsed = body; if (Array.isArray(parsed.errors) && parsed.errors.length > 0) { const first = parsed.errors[0]; return first.detail || first.message || JSON.stringify(body); } if (parsed.message) return parsed.message; } return typeof body === 'string' && body ? body : 'no response body'; } exports.extractDetail = extractDetail; /** Turn a superagent error into a {@link LayoutApiError} (status + readable detail). */ function toLayoutApiError(error) { const superagentError = error; const status = superagentError.status ?? 0; const body = superagentError.response?.body ?? superagentError.response?.text; return new LayoutApiError(status, extractDetail(body)); } exports.toLayoutApiError = toLayoutApiError; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2xheW91dC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBEQUEwRDs7O0FBRTFELGdGQUFnRjtBQUNoRixNQUFhLGNBQWUsU0FBUSxLQUFLO0lBT3ZDLFlBQVksTUFBYyxFQUFFLE1BQWM7UUFDeEMsS0FBSyxDQUFDLG9CQUFvQixNQUFNLEtBQUssTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQWJELHdDQWFDO0FBRUQsK0VBQStFO0FBQy9FLFNBQWdCLGFBQWEsQ0FBQyxJQUFhO0lBQ3pDLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUdkLENBQUM7UUFDRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRS9CLE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUQ7UUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPO1lBQUUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO0tBQzNDO0lBRUQsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO0FBQ3RFLENBQUM7QUFoQkQsc0NBZ0JDO0FBRUQsd0ZBQXdGO0FBQ3hGLFNBQWdCLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsTUFBTSxlQUFlLEdBQUcsS0FHdkIsQ0FBQztJQUNGLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO0lBRTlFLE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFURCw0Q0FTQyJ9