@wener/console
Version:
Base console UI toolkit
99 lines (98 loc) • 4.01 kB
JavaScript
function _instanceof(left, right) {
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
return !!right[Symbol.hasInstance](left);
} else {
return left instanceof right;
}
}
function _type_of(obj) {
"@swc/helpers - typeof";
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
}
import { getHttpStatusText } from '@wener/utils';
export function resolveErrorMessage(error) {
if (!error) {
return;
}
if (!_instanceof(error, Error)) {
if (error && (typeof error === "undefined" ? "undefined" : _type_of(error)) === 'object') {
if ('message' in error) {
return error.message;
}
if ('detail' in error) {
return error.detail;
}
}
return String(error);
}
try {
if (isZodError(error)) {
return error.issues.map(function(v) {
return "".concat(v.path.join('.'), ": ").concat(v.message);
}).join(';');
}
if (isTypeBoxError(error)) {
var _error_error = error.error, path = _error_error.path, type = _error_error.type, message = _error_error.message;
return "".concat(path, ": ").concat(message, " (").concat(type, ")");
}
if (URQLError.is(error)) {
return error.response.errors.map(function(v) {
return v.message;
}).join(';');
}
var buildGraphQLError = function() {
var errors = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
return errors.map(function(v) {
return "".concat(v.message);
}).join(';');
};
var buildGraphQLResponseError = function(param) {
var response = param.response;
var s = [
''
];
var status = response.status;
if (status !== 200) {
s.push("".concat(status, " ").concat(getHttpStatusText(status)));
}
if (response.errors) {
s.push(buildGraphQLError(response.errors));
}
return s.join(' ');
};
if (GraphQL.isClientError(error)) {
return buildGraphQLResponseError(error);
}
if ((typeof error === "undefined" ? "undefined" : _type_of(error)) === 'object' && 'message' in error) {
return error.message;
}
} catch (e) {
console.error('resolveErrorMessage', e);
}
return String(error);
}
(function(GraphQL) {
function isClientError(error) {
// graphql-client _ClientError
// https://github.com/graffle-js/graffle/blob/graphql-request/src/legacy/classes/ClientError.ts
return _type_of(error.response) === 'object' && _type_of(error.request) === 'object' && typeof error.response.status === 'number' && typeof error.request.query === 'string' && (error.response.errors === undefined || error.response.errors === null || Array.isArray(error.response.errors));
}
GraphQL.isClientError = isClientError;
})(GraphQL || (GraphQL = {}));
function isTypeBoxError(error) {
var _error_error;
return ((_error_error = error.error) === null || _error_error === void 0 ? void 0 : _error_error.path) && error.error.type && error.error.message && _instanceof(error, Error);
}
function isZodError(error) {
return _instanceof(error, Error) && Array.isArray(error.issues);
}
// https://commerce.nearform.com/open-source/urql/docs/basics/errors/
// https://github.com/urql-graphql/urql/blob/main/packages/core/src/utils/error.ts
// urql CombinedError
(function(URQLError) {
function is(error) {
return Array.isArray(error === null || error === void 0 ? void 0 : error.graphQLErrors) && error.name === 'CombinedError' && _instanceof(error, Error);
}
URQLError.is = is;
})(URQLError || (URQLError = {}));
var GraphQL, URQLError;