UNPKG

@ogma/nestjs-module

Version:

A NestJS module for the Ogma logger

62 lines (61 loc) 2.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRequestScopedLoggerProviders = exports.createLoggerProviders = exports.createRequestScopedProviderToken = exports.createProviderToken = exports.createOgmaTraceOptions = exports.createOgmaServiceOptions = exports.createOgmaProvider = void 0; const common_1 = require("@nestjs/common"); const core_1 = require("@nestjs/core"); const logger_1 = require("@ogma/logger"); const ogma_constants_1 = require("./ogma.constants"); const ogma_service_1 = require("./ogma.service"); /** * @internal */ function createOgmaProvider(options) { return new logger_1.Ogma(Object.assign(Object.assign({}, options), { application: (options === null || options === void 0 ? void 0 : options.application) || 'Nest' })); } exports.createOgmaProvider = createOgmaProvider; function createOgmaServiceOptions(options) { return options; } exports.createOgmaServiceOptions = createOgmaServiceOptions; function createOgmaTraceOptions(options) { var _a; return (_a = options === null || options === void 0 ? void 0 : options.traceMethod) !== null && _a !== void 0 ? _a : 'fine'; } exports.createOgmaTraceOptions = createOgmaTraceOptions; function createProviderToken(topic) { return ogma_constants_1.OGMA_SERVICE_TOKEN + ':' + topic; } exports.createProviderToken = createProviderToken; function createRequestScopedProviderToken(topic) { return ogma_constants_1.OGMA_REQUEST_SCOPED_SERVICE_TOKEN + ':' + topic; } exports.createRequestScopedProviderToken = createRequestScopedProviderToken; function createLoggerProviders(topic) { topic = typeof topic === 'function' ? topic.name : topic; const token = createProviderToken(topic); return [ { inject: [ogma_constants_1.OGMA_INSTANCE], provide: token, useFactory: (ogmaInstance) => { return new ogma_service_1.OgmaService(ogmaInstance, topic); }, }, ]; } exports.createLoggerProviders = createLoggerProviders; function createRequestScopedLoggerProviders(topic) { topic = typeof topic === 'function' ? topic.name : topic; const token = createRequestScopedProviderToken(topic); return [ { inject: [ogma_constants_1.OGMA_INSTANCE, core_1.REQUEST], provide: token, scope: common_1.Scope.REQUEST, useFactory: (ogmaInstance, requestContext) => { return new ogma_service_1.OgmaService(ogmaInstance, topic, requestContext); }, }, ]; } exports.createRequestScopedLoggerProviders = createRequestScopedLoggerProviders;