@crowdin/app-project-module
Version:
Module that generates for you all common endpoints for serving standalone Crowdin App
35 lines (34 loc) • 1.6 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = register;
const crowdin_client_1 = require("../../middlewares/crowdin-client");
const json_response_1 = require("../../middlewares/json-response");
const render_ui_module_1 = __importDefault(require("../../middlewares/render-ui-module"));
const ui_module_1 = __importDefault(require("../../middlewares/ui-module"));
const verify_1 = __importDefault(require("./handlers/verify"));
function register({ config, app }) {
if (!config.authGuard) {
return;
}
const authGuardModules = config.authGuard;
if (!authGuardModules.length) {
return;
}
// Register settings UI modules if provided
authGuardModules.forEach((module, index) => {
if (module.settingsUiModule) {
const moduleKey = module.key || `${config.identifier}-auth-guard-${index}`;
app.use(`/auth-guard/${moduleKey}/settings`, (0, ui_module_1.default)({ config, moduleType: moduleKey }), (0, render_ui_module_1.default)(module.settingsUiModule, config));
}
});
// Register verification endpoint
app.post('/auth-guard/verify', json_response_1.handle, (0, crowdin_client_1.handle)({
config,
optional: false,
checkSubscriptionExpiration: false,
moduleKey: authGuardModules.map((m, i) => m.key || `${config.identifier}-auth-guard-${i}`),
}), (0, verify_1.default)(authGuardModules));
}