@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
JavaScript
"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
}
}