UNPKG

@5minds/processcube_engine

Version:

The ProcessCube Engine. Stores and executes BPMNs.

38 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deprecate = deprecate; const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk"); /** * Allows you to mark a route as deprecated. * * Usage: * * Without an alternative route: * router.post('/my/depcreated/route', deprecate(), requestHandlerFunction); * * With an alternative route: * router.post('/my/depcreated/route', deprecate('/my/alternative/route'), requestHandlerFunction); * * @param deprecateSilently Optional: If true, no log message will be printed to the console. This can be useful for routes with high traffic to prevent a log spam. * @param alternativeRoute Optional: A replacement route that the user can use as an alternative. */ function deprecate(deprecateSilently = false, alternativeRoute) { const logger = new processcube_engine_sdk_1.Logger('http:deprecation_notifier'); return (request, response, next) => { let deprecatedRoute = request.originalUrl; for (const paramName of Object.keys(request.params)) { deprecatedRoute = deprecatedRoute.replace(request.params[paramName], `:${paramName}`); } response.setHeader('Deprecation', 'true'); let deprecationMessage = `Route '${deprecatedRoute}' has been deprecated an will be removed in an upcoming major release.`; if (alternativeRoute) { response.setHeader('Link', alternativeRoute); deprecationMessage = `${deprecationMessage} Use '${alternativeRoute}' instead.`; } if (!deprecateSilently) { logger.warn(deprecationMessage); } next(); }; } //# sourceMappingURL=DepcreationWarningMiddleware.js.map