UNPKG

@crowdin/app-project-module

Version:

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

52 lines (51 loc) 2.48 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 json_response_1 = __importDefault(require("../../middlewares/json-response")); const ui_module_1 = __importDefault(require("../../middlewares/ui-module")); const render_ui_module_1 = __importDefault(require("../../middlewares/render-ui-module")); const util_1 = require("../../util"); const crowdin_client_1 = __importDefault(require("../../middlewares/crowdin-client")); const compile_1 = __importDefault(require("./handlers/compile")); const status_1 = __importDefault(require("./handlers/status")); const normalize_module_1 = require("../../util/normalize-module"); function register({ config, app }) { var _a; if (!config.aiPromptProvider) { return; } const items = (0, normalize_module_1.normalizeToArray)(config.aiPromptProvider); const isSingle = items.length === 1; for (const [index, provider] of items.entries()) { const key = (_a = provider.key) !== null && _a !== void 0 ? _a : (0, normalize_module_1.resolveInstanceKey)({ identifier: config.identifier, suffix: 'ai-prompt-provider', item: provider, index, isSingle, }); const base = isSingle ? '/prompt-provider' : `/prompt-provider/${key}`; const logoPath = isSingle ? '/logo/ai-prompt-provider' : `/logo/ai-prompt-provider-${key}`; app.post(`${base}/compile`, json_response_1.default, (0, crowdin_client_1.default)({ config, optional: false, checkSubscriptionExpiration: true, moduleKey: key, }), (0, compile_1.default)(provider)); if (provider.status) { app.post(`${base}/status`, json_response_1.default, (0, crowdin_client_1.default)({ config, optional: false, checkSubscriptionExpiration: true, moduleKey: key, }), (0, status_1.default)(provider)); } if (provider.formSchema || provider.uiPath) { app.use(`${base}/settings`, (0, ui_module_1.default)({ config, allowUnauthorized: true, moduleType: key }), (0, render_ui_module_1.default)(provider, config)); } app.use(logoPath, (0, util_1.serveLogo)(config, provider)); } }