UNPKG

@tsed/common

Version:
42 lines 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createContext = void 0; const PlatformContext_1 = require("../domain/PlatformContext"); const PlatformRequest_1 = require("../services/PlatformRequest"); const PlatformResponse_1 = require("../services/PlatformResponse"); const uuidv4 = require("uuid").v4; const defaultReqIdBuilder = () => uuidv4().replace(/-/gi, ""); /** * Create the TsED context to wrap request, response, injector, etc... * @param injector * @param req * @param res * @ignore */ async function createContext(injector, req, res) { const { level, ignoreUrlPatterns, maxStackSize, reqIdBuilder = defaultReqIdBuilder } = injector.settings.logger; const id = reqIdBuilder(); const request = PlatformRequest_1.PlatformRequest.create(injector, req); const response = PlatformResponse_1.PlatformResponse.create(injector, res); const ctx = new PlatformContext_1.PlatformContext({ id, logger: injector.logger, url: request.url, ignoreUrlPatterns, level, maxStackSize, injector, response, request }); req.$ctx = ctx; response.onEnd(async () => { await ctx.emit("$onResponse", ctx); await ctx.destroy(); delete req.$ctx; }); await ctx.emit("$onRequest", ctx); return ctx; } exports.createContext = createContext; //# sourceMappingURL=createContext.js.map