UNPKG

@crowdin/app-project-module

Version:

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

37 lines (36 loc) 1.74 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.register = void 0; const crowdin_client_1 = __importDefault(require("../../middlewares/crowdin-client")); const json_response_1 = __importDefault(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; } // Normalize to array const authGuardModules = Array.isArray(config.authGuard) ? config.authGuard : [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)); } }); // Register verification endpoint app.post('/auth-guard/verify', json_response_1.default, (0, crowdin_client_1.default)({ config, optional: false, checkSubscriptionExpiration: false, moduleKey: authGuardModules.map((m, i) => m.key || `${config.identifier}-auth-guard-${i}`), }), (0, verify_1.default)(authGuardModules)); } exports.register = register;