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