@ogma/nestjs-module
Version:
A NestJS module for the Ogma logger
62 lines (61 loc) • 2.65 kB
JavaScript
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;
;