UNPKG

@pazznetwork/ngx-chat

Version:

[![Build status](https://api.travis-ci.com/pazznetwork/ngx-chat.svg?branch=master)](https://travis-ci.com/pazznetwork/ngx-chat) [![Coverage](https://coveralls.io/repos/github/pazznetwork/ngx-chat/badge.svg?branch=master)](https://coveralls.io/github/pazzn

36 lines 6.93 kB
export class XmppResponseError extends Error { constructor(errorStanza) { super(XmppResponseError.extractErrorTextFromErrorResponse(errorStanza, XmppResponseError.extractErrorDataFromErrorResponse(errorStanza))); this.errorStanza = errorStanza; const { code, type, condition } = XmppResponseError.extractErrorDataFromErrorResponse(errorStanza); this.errorCode = code; this.errorType = type; this.errorCondition = condition; } static extractErrorDataFromErrorResponse(stanza) { const errorElement = stanza.getChild('error'); const errorCode = Number(errorElement?.attrs.code) || undefined; const errorType = errorElement?.attrs.type; const errorCondition = errorElement ?.children .filter(childElement => childElement.getName() !== 'text' && childElement.attrs.xmlns === XmppResponseError.ERROR_ELEMENT_NS)[0] ?.getName(); return { code: errorCode, type: errorType, condition: errorCondition, }; } static extractErrorTextFromErrorResponse(stanza, { code, type, condition }) { const additionalData = [ `errorCode: ${code ?? '[unknown]'}`, `errorType: ${type ?? '[unknown]'}`, `errorCondition: ${condition ?? '[unknown]'}`, ].join(', '); const errorText = stanza.getChild('error')?.getChildText('text', XmppResponseError.ERROR_ELEMENT_NS) || 'Unknown error'; return `XmppResponseError: ${errorText}${additionalData ? ` (${additionalData})` : ''}`; } } XmppResponseError.ERROR_ELEMENT_NS = 'urn:ietf:params:xml:ns:xmpp-stanzas'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1wcC1yZXNwb25zZS5lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYWRhcHRlcnMveG1wcC94bXBwLXJlc3BvbnNlLmVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxLQUFLO0lBTXhDLFlBQXFCLFdBQW1CO1FBQ3BDLEtBQUssQ0FDRCxpQkFBaUIsQ0FBQyxpQ0FBaUMsQ0FDL0MsV0FBVyxFQUNYLGlCQUFpQixDQUFDLGlDQUFpQyxDQUFDLFdBQVcsQ0FBQyxDQUNuRSxDQUNKLENBQUM7UUFOZSxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQVFwQyxNQUFNLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUMsR0FBRyxpQkFBaUIsQ0FBQyxpQ0FBaUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sTUFBTSxDQUFDLGlDQUFpQyxDQUFDLE1BQWM7UUFLM0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQVcsQ0FBQztRQUN4RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUM7UUFDaEUsTUFBTSxTQUFTLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUEwQixDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUNoQixZQUFZO1lBQ1IsRUFBRSxRQUFRO2FBQ1QsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQ25CLFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxNQUFNO1lBQ2pDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLGlCQUFpQixDQUFDLGdCQUFnQixDQUNsRSxDQUFDLENBQUMsQ0FBQztZQUNKLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFFcEIsT0FBTztZQUNILElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLFNBQVM7WUFDZixTQUFTLEVBQUUsY0FBYztTQUM1QixDQUFDO0lBQ04sQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FDNUMsTUFBYyxFQUNkLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBSXJCO1FBQ0QsTUFBTSxjQUFjLEdBQUc7WUFDbkIsY0FBYyxJQUFJLElBQUksV0FBVyxFQUFFO1lBQ25DLGNBQWMsSUFBSSxJQUFJLFdBQVcsRUFBRTtZQUNuQyxtQkFBbUIsU0FBUyxJQUFJLFdBQVcsRUFBRTtTQUNoRCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNiLE1BQU0sU0FBUyxHQUNYLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGVBQWUsQ0FBQztRQUUxRyxPQUFPLHNCQUFzQixTQUFTLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUM1RixDQUFDOztBQTNEZSxrQ0FBZ0IsR0FBRyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3RhbnphfSBmcm9tICcuLi8uLi8uLi9jb3JlL3N0YW56YSc7XG5cbmV4cG9ydCBjbGFzcyBYbXBwUmVzcG9uc2VFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBzdGF0aWMgcmVhZG9ubHkgRVJST1JfRUxFTUVOVF9OUyA9ICd1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOnhtcHAtc3Rhbnphcyc7XG4gICAgcmVhZG9ubHkgZXJyb3JDb2RlPzogbnVtYmVyO1xuICAgIHJlYWRvbmx5IGVycm9yVHlwZT86IHN0cmluZztcbiAgICByZWFkb25seSBlcnJvckNvbmRpdGlvbj86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGVycm9yU3RhbnphOiBTdGFuemEpIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBYbXBwUmVzcG9uc2VFcnJvci5leHRyYWN0RXJyb3JUZXh0RnJvbUVycm9yUmVzcG9uc2UoXG4gICAgICAgICAgICAgICAgZXJyb3JTdGFuemEsXG4gICAgICAgICAgICAgICAgWG1wcFJlc3BvbnNlRXJyb3IuZXh0cmFjdEVycm9yRGF0YUZyb21FcnJvclJlc3BvbnNlKGVycm9yU3RhbnphKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qge2NvZGUsIHR5cGUsIGNvbmRpdGlvbn0gPSBYbXBwUmVzcG9uc2VFcnJvci5leHRyYWN0RXJyb3JEYXRhRnJvbUVycm9yUmVzcG9uc2UoZXJyb3JTdGFuemEpO1xuICAgICAgICB0aGlzLmVycm9yQ29kZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuZXJyb3JUeXBlID0gdHlwZTtcbiAgICAgICAgdGhpcy5lcnJvckNvbmRpdGlvbiA9IGNvbmRpdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBleHRyYWN0RXJyb3JEYXRhRnJvbUVycm9yUmVzcG9uc2Uoc3RhbnphOiBTdGFuemEpOiB7XG4gICAgICAgIGNvZGU/OiBudW1iZXIsXG4gICAgICAgIHR5cGU/OiBzdHJpbmcsXG4gICAgICAgIGNvbmRpdGlvbj86IHN0cmluZ1xuICAgIH0ge1xuICAgICAgICBjb25zdCBlcnJvckVsZW1lbnQgPSBzdGFuemEuZ2V0Q2hpbGQoJ2Vycm9yJykgYXMgU3RhbnphO1xuICAgICAgICBjb25zdCBlcnJvckNvZGUgPSBOdW1iZXIoZXJyb3JFbGVtZW50Py5hdHRycy5jb2RlKSB8fCB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGVycm9yVHlwZSA9IGVycm9yRWxlbWVudD8uYXR0cnMudHlwZSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGVycm9yQ29uZGl0aW9uID1cbiAgICAgICAgICAgIGVycm9yRWxlbWVudFxuICAgICAgICAgICAgICAgID8uY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAuZmlsdGVyKGNoaWxkRWxlbWVudCA9PlxuICAgICAgICAgICAgICAgICAgICBjaGlsZEVsZW1lbnQuZ2V0TmFtZSgpICE9PSAndGV4dCcgJiZcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRFbGVtZW50LmF0dHJzLnhtbG5zID09PSBYbXBwUmVzcG9uc2VFcnJvci5FUlJPUl9FTEVNRU5UX05TLFxuICAgICAgICAgICAgICAgIClbMF1cbiAgICAgICAgICAgICAgICA/LmdldE5hbWUoKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZTogZXJyb3JDb2RlLFxuICAgICAgICAgICAgdHlwZTogZXJyb3JUeXBlLFxuICAgICAgICAgICAgY29uZGl0aW9uOiBlcnJvckNvbmRpdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBleHRyYWN0RXJyb3JUZXh0RnJvbUVycm9yUmVzcG9uc2UoXG4gICAgICAgIHN0YW56YTogU3RhbnphLFxuICAgICAgICB7Y29kZSwgdHlwZSwgY29uZGl0aW9ufToge1xuICAgICAgICAgICAgY29kZT86IG51bWJlcixcbiAgICAgICAgICAgIHR5cGU/OiBzdHJpbmcsXG4gICAgICAgICAgICBjb25kaXRpb24/OiBzdHJpbmdcbiAgICAgICAgfSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWxEYXRhID0gW1xuICAgICAgICAgICAgYGVycm9yQ29kZTogJHtjb2RlID8/ICdbdW5rbm93bl0nfWAsXG4gICAgICAgICAgICBgZXJyb3JUeXBlOiAke3R5cGUgPz8gJ1t1bmtub3duXSd9YCxcbiAgICAgICAgICAgIGBlcnJvckNvbmRpdGlvbjogJHtjb25kaXRpb24gPz8gJ1t1bmtub3duXSd9YCxcbiAgICAgICAgXS5qb2luKCcsICcpO1xuICAgICAgICBjb25zdCBlcnJvclRleHQgPVxuICAgICAgICAgICAgc3RhbnphLmdldENoaWxkKCdlcnJvcicpPy5nZXRDaGlsZFRleHQoJ3RleHQnLCBYbXBwUmVzcG9uc2VFcnJvci5FUlJPUl9FTEVNRU5UX05TKSB8fCAnVW5rbm93biBlcnJvcic7XG5cbiAgICAgICAgcmV0dXJuIGBYbXBwUmVzcG9uc2VFcnJvcjogJHtlcnJvclRleHR9JHthZGRpdGlvbmFsRGF0YSA/IGAgKCR7YWRkaXRpb25hbERhdGF9KWAgOiAnJ31gO1xuICAgIH1cbn1cbiJdfQ==