@crowdin/app-project-module
Version:
Module that generates for you all common endpoints for serving standalone Crowdin App
41 lines (40 loc) • 1.98 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 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 util_2 = require("../../util");
const normalize_module_1 = require("../../util/normalize-module");
function register({ config, app }) {
var _a;
if (!config.organizationSettingsMenu) {
return;
}
const items = (0, normalize_module_1.normalizeToArray)(config.organizationSettingsMenu);
const isSingle = items.length === 1;
const allowUnauthorized = !(0, util_1.isAuthorizedConfig)(config);
for (const [index, item] of items.entries()) {
const key = (_a = item.key) !== null && _a !== void 0 ? _a : (0, normalize_module_1.resolveInstanceKey)({
identifier: config.identifier,
suffix: 'organization-settings-menu',
item,
index,
isSingle,
});
const basePath = isSingle ? '/organization-settings' : `/organization-settings-${key}`;
const logoPath = isSingle ? '/logo/organization-settings' : `/logo/organization-settings-${key}`;
app.use(logoPath, (0, util_2.serveLogo)(config, item));
app.use(basePath, (0, ui_module_1.default)({ config, allowUnauthorized, moduleType: key }), (0, render_ui_module_1.default)(item, config));
}
if (isSingle) {
const item = items[0];
// TEMPORARY CODE: it needs to support old path
app.use('/logo/settings', (0, util_2.serveLogo)(config, item));
app.use('/settings', (0, ui_module_1.default)({ config, allowUnauthorized }), (0, render_ui_module_1.default)(item, config));
// END TEMPORARY CODE
}
}