http-problem-details-mapper
Version:
Mapper functions for http-problem-details
40 lines • 1.32 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.MapperRegistry = void 0;
const DefaultErrorMapper_1 = require("./DefaultErrorMapper");
class MapperRegistry {
constructor(options) {
this.mappers = new Map();
let useDefaultErrorMapper = true;
if (options && options.useDefaultErrorMapper === false) {
useDefaultErrorMapper = false;
}
if (useDefaultErrorMapper) {
this.registerMapper(new DefaultErrorMapper_1.DefaultErrorMapper());
}
}
registerMapper(mapper, replace = false) {
if (replace || !this.mappers.has(mapper.error)) {
this.mappers.set(mapper.error, mapper);
}
return this;
}
getMapper(error) {
let constructor = error.constructor;
let proto = Object.getPrototypeOf(error);
let mapper;
while (constructor.name !== 'Object') {
mapper = this.mappers.get(constructor.name);
if (mapper) {
break;
}
else {
proto = Object.getPrototypeOf(proto);
constructor = proto.constructor;
}
}
return mapper || null;
}
}
exports.MapperRegistry = MapperRegistry;
//# sourceMappingURL=MapperRegistry.js.map
;