@ogma/nestjs-module
Version:
A NestJS module for the Ogma logger
127 lines (126 loc) • 5.73 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DelegatorService = void 0;
const common_1 = require("@nestjs/common");
const core_1 = require("@nestjs/core");
const decorators_1 = require("../../decorators");
const ogma_constants_1 = require("../../ogma.constants");
const ogma_service_1 = require("../../ogma.service");
let DelegatorService = class DelegatorService {
constructor(discoveryService, reflector, logger) {
this.discoveryService = discoveryService;
this.reflector = reflector;
this.logger = logger;
this.parserMap = new Map();
}
async onModuleInit() {
const providers = this.discoveryService.getProviders();
providers
.filter((provider) => !provider.isNotMetatype && this.reflector.get(ogma_constants_1.OGMA_CONTEXT_PARSER, provider.metatype))
.forEach((foundProvider) => {
const contextType = this.reflector.get(ogma_constants_1.OGMA_CONTEXT_PARSER, foundProvider.metatype);
if (this.parserMap.has(contextType)) {
this.logger.warn(`Already registered a parser for ${contextType}. New parser: ${foundProvider.name}`);
}
this.parserMap.set(this.reflector.get(ogma_constants_1.OGMA_CONTEXT_PARSER, foundProvider.metatype), foundProvider.instance);
});
}
setRequestId(context, requestId) {
const parser = this.getParser(context.getType());
parser.setRequestId(context, requestId);
}
getRequestId(context) {
const parser = this.getParser(context.getType());
return parser.getRequestId(context);
}
getContextSuccessString(data, context, startTime, options) {
const parser = this.getParser(context.getType());
const _a = this.getContextString({
method: 'getSuccessContext',
data,
context,
startTime,
options,
parser,
}), { meta } = _a, logObject = __rest(_a, ["meta"]);
return this.getStringOrObject(Object.assign(Object.assign({}, logObject), { meta }), { json: options.json });
}
getParser(type) {
return this.parserMap.get(type);
}
getContextErrorString(error, context, startTime, options) {
const parser = this.getParser(context.getType());
const _a = this.getContextString({
method: 'getErrorContext',
data: error,
context,
startTime,
options,
parser,
}), { meta } = _a, logObject = __rest(_a, ["meta"]);
return this.getStringOrObject(Object.assign(Object.assign({}, logObject), { meta }), { json: options.json });
}
getContextString({ method, data, context, startTime, options, parser, }) {
return parser[method](data, context, startTime, options);
}
getStringOrObject(_a, options) {
var { meta } = _a, data = __rest(_a, ["meta"]);
const returnData = {
log: '',
};
if (options.json) {
if (options.inlineMeta) {
returnData.log = Object.assign(Object.assign({}, data), { meta });
}
else {
returnData.log = data;
returnData.meta = meta;
}
}
else {
if (options.inlineMeta) {
returnData.log = `${data.callerAddress} - ${data.method} ${data.callPoint} ${data.protocol} ${data.status} ${data.responseTime}ms - ${data.contentLength} - meta: ${JSON.stringify(meta)}`;
}
else {
returnData.log = `${data.callerAddress} - ${data.method} ${data.callPoint} ${data.protocol} ${data.status} ${data.responseTime}ms - ${data.contentLength}`;
returnData.meta = meta;
}
}
return returnData;
}
getStartTime(host) {
const parser = this.getParser(host.getType());
return parser.getStartTime(host);
}
};
exports.DelegatorService = DelegatorService;
exports.DelegatorService = DelegatorService = __decorate([
(0, common_1.Injectable)(),
__param(2, (0, decorators_1.OgmaLogger)(DelegatorService)),
__metadata("design:paramtypes", [core_1.DiscoveryService,
core_1.Reflector,
ogma_service_1.OgmaService])
], DelegatorService);
;