UNPKG

@crowdin/app-project-module

Version:

Module that generates for you all common endpoints for serving standalone Crowdin App

48 lines (47 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.autoCredentialsMaskerMiddleware = autoCredentialsMaskerMiddleware; exports.registerAutoCredentialsMasker = registerAutoCredentialsMasker; const credentials_masker_1 = require("../util/credentials-masker"); const form_schema_1 = require("../util/form-schema"); const logger_1 = require("../util/logger"); function autoCredentialsMaskerMiddleware(config) { return function (req, res, next) { try { if (req.__credentialsMaskerApplied) { return next(); } const requestPath = req.path; const requestMethod = req.method.toLowerCase(); for (const moduleKey of Object.keys(config)) { const moduleConfig = config[moduleKey]; if ((0, form_schema_1.hasFormSchema)(moduleConfig)) { const moduleConfigWithForm = (0, form_schema_1.getLowCodeUiConfigFromModuleConfig)(moduleConfig); if (moduleConfigWithForm) { if (requestMethod === 'get' && moduleConfigWithForm.formGetDataUrl) { if (requestPath === moduleConfigWithForm.formGetDataUrl) { return (0, credentials_masker_1.getRequestCredentialsMasker)({ moduleConfig: moduleConfigWithForm })(req, res, next); } } if (requestMethod === 'post' && moduleConfigWithForm.formPostDataUrl) { if (requestPath === moduleConfigWithForm.formPostDataUrl) { return (0, credentials_masker_1.postRequestCredentialsMasker)({ secret: config.clientSecret, moduleConfig: moduleConfigWithForm, })(req, res, next); } } } } } next(); } catch (error) { (0, logger_1.logError)(`Error in autoCredentialsMaskerMiddleware: ${error}`); next(); } }; } function registerAutoCredentialsMasker(app, config) { app.use(autoCredentialsMaskerMiddleware(config)); }