UNPKG

@crowdin/app-project-module

Version:

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

94 lines (93 loc) 4.85 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 = register; 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 util_1 = require("../../util"); const normalize_module_1 = require("../../util/normalize-module"); const get_languages_list_1 = __importDefault(require("./handlers/get-languages-list")); const spell_check_1 = __importDefault(require("./handlers/spell-check")); function register({ config, app }) { var _a, _b; if (!config.customSpellchecker) { return; } const items = (0, normalize_module_1.normalizeToArray)(config.customSpellchecker); const isSingle = items.length === 1; if ((0, util_1.isAuthorizedConfig)(config)) { for (const [index, spellchecker] of items.entries()) { const key = (_a = spellchecker.key) !== null && _a !== void 0 ? _a : (0, normalize_module_1.resolveInstanceKey)({ identifier: config.identifier, suffix: 'spellchecker', item: spellchecker, index, isSingle, }); const base = isSingle ? '/spellchecker' : `/spellchecker/${key}`; if (spellchecker.settingsUiModule) { app.use(`${base}/settings`, (0, ui_module_1.default)({ config, moduleType: key }), (0, render_ui_module_1.default)(spellchecker.settingsUiModule, config)); } app.get(`${base}/languages`, json_response_1.default, (0, crowdin_client_1.default)({ config, optional: false, checkSubscriptionExpiration: true, moduleKey: key, }), (0, get_languages_list_1.default)(spellchecker)); app.post(`${base}/spellcheck`, json_response_1.default, (0, crowdin_client_1.default)({ config, optional: false, checkSubscriptionExpiration: true, moduleKey: key, }), (0, spell_check_1.default)(spellchecker)); } if (isSingle) { const spellchecker = items[0]; // TEMPORARY CODE: it needs to support old path if (spellchecker.settingsUiModule) { app.use('/settings', (0, ui_module_1.default)({ config }), (0, render_ui_module_1.default)(spellchecker.settingsUiModule, config)); } app.get('/languages', json_response_1.default, (0, crowdin_client_1.default)({ config, optional: false, checkSubscriptionExpiration: true, }), (0, get_languages_list_1.default)(spellchecker)); app.post('/spellcheck', json_response_1.default, (0, crowdin_client_1.default)({ config, optional: false, checkSubscriptionExpiration: true, }), (0, spell_check_1.default)(spellchecker)); // END TEMPORARY CODE } return; } for (const [index, spellchecker] of items.entries()) { const key = (_b = spellchecker.key) !== null && _b !== void 0 ? _b : (0, normalize_module_1.resolveInstanceKey)({ identifier: config.identifier, suffix: 'spellchecker', item: spellchecker, index, isSingle, }); const base = isSingle ? '/spellchecker' : `/spellchecker/${key}`; if (spellchecker.settingsUiModule) { app.use(`${base}/settings`, (0, ui_module_1.default)({ config, allowUnauthorized: true, moduleType: key }), (0, render_ui_module_1.default)(spellchecker.settingsUiModule, config)); } app.get(`${base}/languages`, json_response_1.default, (0, get_languages_list_1.default)(spellchecker)); app.post(`${base}/spellcheck`, json_response_1.default, (0, spell_check_1.default)(spellchecker)); } if (isSingle) { const spellchecker = items[0]; // TEMPORARY CODE: it needs to support old path if (spellchecker.settingsUiModule) { app.use('/settings', (0, ui_module_1.default)({ config, allowUnauthorized: true }), (0, render_ui_module_1.default)(spellchecker.settingsUiModule, config)); } app.get('/languages', json_response_1.default, (0, get_languages_list_1.default)(spellchecker)); app.post('/spellcheck', json_response_1.default, (0, spell_check_1.default)(spellchecker)); // END TEMPORARY CODE } }