@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
JavaScript
;
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));
}