nsrtm-gestionarchivo-npm-prueba2
Version:
Proyecto de Libreria Frontend para la Gestión de Archivos
70 lines • 9.12 kB
JavaScript
import { Injectable } from '@angular/core';
import { from, of, throwError } from 'rxjs';
import { catchError, map, switchMap } from 'rxjs/operators';
import { TIPO_MENSAJE_ERR_VAL, } from '../models/error-detalle.model';
import * as i0 from "@angular/core";
// type ErrorHandle = {
// status?: number;
// message?: string;
// };
const getStructError$ = (httpError) => {
//console.log('httpError', httpError);
const { error, status, message } = httpError;
if (error instanceof Blob) {
return readBlobAsJson(error);
}
if (status > 500 || status < 400)
return of({
mensaje: message,
errores: [],
codigo: status.toString(),
tipMen: TIPO_MENSAJE_ERR_VAL.DANGER,
});
if (status === 403) {
return of({
mensaje: message,
errores: [],
codigo: status.toString(),
tipMen: TIPO_MENSAJE_ERR_VAL.DANGER,
});
}
if (status === 500) {
return of({
mensaje: error?.mensaje || message,
errores: [],
codigo: status.toString(),
tipMen: TIPO_MENSAJE_ERR_VAL.DANGER,
});
}
return of(error);
};
const readBlobAsJson = (blob) => {
return from(readBlobAsText(blob)).pipe(map((jsonString) => JSON.parse(jsonString)));
};
const readBlobAsText = (blob) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = () => {
const text = reader.result;
resolve(text);
};
reader.onerror = reject;
reader.readAsText(blob);
});
};
export class ErrorCatchingInterceptor {
constructor() { }
intercept(request, next) {
return next.handle(request).pipe(catchError((httpError) => {
return getStructError$(httpError).pipe(switchMap((error) => {
return throwError(() => error);
}));
}));
}
}
ErrorCatchingInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ErrorCatchingInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
ErrorCatchingInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ErrorCatchingInterceptor });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ErrorCatchingInterceptor, decorators: [{
type: Injectable
}], ctorParameters: function () { return []; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9hcmNoaXZvL25zcnRtLWdlc3Rpb25hcmNoaXZvLW5wbS9zcmMvYXBwL2NvcmUvaW50ZXJjZXB0b3JzL2Vycm9yLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFFTixvQkFBb0IsR0FDcEIsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFdkMsdUJBQXVCO0FBQ3ZCLG9CQUFvQjtBQUNwQixxQkFBcUI7QUFDckIsS0FBSztBQUVMLE1BQU0sZUFBZSxHQUFHLENBQ3ZCLFNBQTRCLEVBQ0ssRUFBRTtJQUNuQyxzQ0FBc0M7SUFDdEMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBRTdDLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtRQUMxQixPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QjtJQUVELElBQUksTUFBTSxHQUFHLEdBQUcsSUFBSSxNQUFNLEdBQUcsR0FBRztRQUMvQixPQUFPLEVBQUUsQ0FBQztZQUNULE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDekIsTUFBTSxFQUFFLG9CQUFvQixDQUFDLE1BQU07U0FDbkMsQ0FBQyxDQUFDO0lBRUosSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO1FBQ25CLE9BQU8sRUFBRSxDQUFDO1lBQ1QsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUN6QixNQUFNLEVBQUUsb0JBQW9CLENBQUMsTUFBTTtTQUNuQyxDQUFDLENBQUM7S0FDSDtJQUVELElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtRQUNuQixPQUFPLEVBQUUsQ0FBQztZQUNULE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLE9BQU87WUFDbEMsT0FBTyxFQUFFLEVBQUU7WUFDWCxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUN6QixNQUFNLEVBQUUsb0JBQW9CLENBQUMsTUFBTTtTQUNuQyxDQUFDLENBQUM7S0FDSDtJQUVELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBVSxFQUFrQyxFQUFFO0lBQ3JFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBdUIsQ0FBQyxDQUNqRSxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFVLEVBQW1CLEVBQUU7SUFDdEQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRWhDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFnQixDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNmLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBRXhCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFHRixNQUFNLE9BQU8sd0JBQXdCO0lBQ3BDLGdCQUFlLENBQUM7SUFFaEIsU0FBUyxDQUNSLE9BQTZCLEVBQzdCLElBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQy9CLFVBQVUsQ0FBQyxDQUFDLFNBQTRCLEVBQUUsRUFBRTtZQUMzQyxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQ3JDLFNBQVMsQ0FBQyxDQUFDLEtBQXlCLEVBQUUsRUFBRTtnQkFDdkMsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQ0YsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDOztxSEFoQlcsd0JBQXdCO3lIQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuXHRIdHRwRXJyb3JSZXNwb25zZSxcclxuXHRIdHRwRXZlbnQsXHJcblx0SHR0cEhhbmRsZXIsXHJcblx0SHR0cEludGVyY2VwdG9yLFxyXG5cdEh0dHBSZXF1ZXN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcblx0SUh0dHBSZXNwb25zZUVycm9yLFxyXG5cdFRJUE9fTUVOU0FKRV9FUlJfVkFMLFxyXG59IGZyb20gJy4uL21vZGVscy9lcnJvci1kZXRhbGxlLm1vZGVsJztcclxuXHJcbi8vIHR5cGUgRXJyb3JIYW5kbGUgPSB7XHJcbi8vIFx0c3RhdHVzPzogbnVtYmVyO1xyXG4vLyBcdG1lc3NhZ2U/OiBzdHJpbmc7XHJcbi8vIH07XHJcblxyXG5jb25zdCBnZXRTdHJ1Y3RFcnJvciQgPSAoXHJcblx0aHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZVxyXG4pOiBPYnNlcnZhYmxlPElIdHRwUmVzcG9uc2VFcnJvcj4gPT4ge1xyXG5cdC8vY29uc29sZS5sb2coJ2h0dHBFcnJvcicsIGh0dHBFcnJvcik7XHJcblx0Y29uc3QgeyBlcnJvciwgc3RhdHVzLCBtZXNzYWdlIH0gPSBodHRwRXJyb3I7XHJcblxyXG5cdGlmIChlcnJvciBpbnN0YW5jZW9mIEJsb2IpIHtcclxuXHRcdHJldHVybiByZWFkQmxvYkFzSnNvbihlcnJvcik7XHJcblx0fVxyXG5cclxuXHRpZiAoc3RhdHVzID4gNTAwIHx8IHN0YXR1cyA8IDQwMClcclxuXHRcdHJldHVybiBvZih7XHJcblx0XHRcdG1lbnNhamU6IG1lc3NhZ2UsXHJcblx0XHRcdGVycm9yZXM6IFtdLFxyXG5cdFx0XHRjb2RpZ286IHN0YXR1cy50b1N0cmluZygpLFxyXG5cdFx0XHR0aXBNZW46IFRJUE9fTUVOU0FKRV9FUlJfVkFMLkRBTkdFUixcclxuXHRcdH0pO1xyXG5cclxuXHRpZiAoc3RhdHVzID09PSA0MDMpIHtcclxuXHRcdHJldHVybiBvZih7XHJcblx0XHRcdG1lbnNhamU6IG1lc3NhZ2UsXHJcblx0XHRcdGVycm9yZXM6IFtdLFxyXG5cdFx0XHRjb2RpZ286IHN0YXR1cy50b1N0cmluZygpLFxyXG5cdFx0XHR0aXBNZW46IFRJUE9fTUVOU0FKRV9FUlJfVkFMLkRBTkdFUixcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aWYgKHN0YXR1cyA9PT0gNTAwKSB7XHJcblx0XHRyZXR1cm4gb2Yoe1xyXG5cdFx0XHRtZW5zYWplOiBlcnJvcj8ubWVuc2FqZSB8fCBtZXNzYWdlLFxyXG5cdFx0XHRlcnJvcmVzOiBbXSxcclxuXHRcdFx0Y29kaWdvOiBzdGF0dXMudG9TdHJpbmcoKSxcclxuXHRcdFx0dGlwTWVuOiBUSVBPX01FTlNBSkVfRVJSX1ZBTC5EQU5HRVIsXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHJldHVybiBvZihlcnJvcik7XHJcbn07XHJcblxyXG5jb25zdCByZWFkQmxvYkFzSnNvbiA9IChibG9iOiBCbG9iKTogT2JzZXJ2YWJsZTxJSHR0cFJlc3BvbnNlRXJyb3I+ID0+IHtcclxuXHRyZXR1cm4gZnJvbShyZWFkQmxvYkFzVGV4dChibG9iKSkucGlwZShcclxuXHRcdG1hcCgoanNvblN0cmluZykgPT4gSlNPTi5wYXJzZShqc29uU3RyaW5nKSBhcyBJSHR0cFJlc3BvbnNlRXJyb3IpXHJcblx0KTtcclxufTtcclxuXHJcbmNvbnN0IHJlYWRCbG9iQXNUZXh0ID0gKGJsb2I6IEJsb2IpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xyXG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG5cclxuXHRcdHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcblx0XHRcdGNvbnN0IHRleHQgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcclxuXHRcdFx0cmVzb2x2ZSh0ZXh0KTtcclxuXHRcdH07XHJcblxyXG5cdFx0cmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XHJcblxyXG5cdFx0cmVhZGVyLnJlYWRBc1RleHQoYmxvYik7XHJcblx0fSk7XHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFcnJvckNhdGNoaW5nSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG5cdGNvbnN0cnVjdG9yKCkge31cclxuXHJcblx0aW50ZXJjZXB0KFxyXG5cdFx0cmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXHJcblx0XHRuZXh0OiBIdHRwSGFuZGxlclxyXG5cdCk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuXHRcdHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKFxyXG5cdFx0XHRjYXRjaEVycm9yKChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIGdldFN0cnVjdEVycm9yJChodHRwRXJyb3IpLnBpcGUoXHJcblx0XHRcdFx0XHRzd2l0Y2hNYXAoKGVycm9yOiBJSHR0cFJlc3BvbnNlRXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcbn1cclxuIl19