moleculer-iam
Version:
Centralized IAM module for moleculer. Including a certified OIDC provider and an Identity provider for user profile, credentials, and custom claims management. Custom claims could be defined/updated by declarative schema which contains claims validation a
35 lines • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logging = void 0;
const tslib_1 = require("tslib");
const kleur = tslib_1.__importStar(require("kleur"));
const _ = tslib_1.__importStar(require("lodash"));
const koa_morgan_1 = tslib_1.__importDefault(require("koa-morgan"));
koa_morgan_1.default.token("ip", req => {
const forwarded = req.headers && req.headers["x-forwarded-for"];
if (forwarded) {
if (typeof forwarded === "string") {
return forwarded;
}
return forwarded[0];
}
return req.connection && req.connection.remoteAddress || "-";
});
koa_morgan_1.default.token("statusMessage", (req, res) => {
return res.statusMessage || "-";
});
function logging(logger, opts) {
const { format, level, ...options } = _.defaultsDeep(opts || {}, {
format: `:method :url HTTP/:http-version - :status :statusMessage :res[content-length] byte :response-time ms - ${kleur.dim(`":ip" ":referrer" ":user-agent"`)}`,
level: "info",
});
const write = (logger[level] || logger.info).bind(logger);
return koa_morgan_1.default(format, {
...options,
stream: {
write,
},
});
}
exports.logging = logging;
//# sourceMappingURL=logging.js.map