UNPKG

@crowdin/app-project-module

Version:

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

48 lines (47 loc) 2.17 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerAiToolWidgets = exports.registerAiTools = void 0; const json_response_1 = __importDefault(require("../../middlewares/json-response")); const tool_calls_1 = __importDefault(require("./handlers/tool-calls")); const ui_module_1 = __importDefault(require("../../middlewares/ui-module")); const render_ui_module_1 = __importDefault(require("../../middlewares/render-ui-module")); const crowdin_client_1 = __importDefault(require("../../middlewares/crowdin-client")); const util_1 = require("./util"); function registerAiTools({ config, app }) { if (!config.aiTools) { return; } const tools = Array.isArray(config.aiTools) ? config.aiTools : [config.aiTools]; for (const tool of tools) { if ((0, util_1.isUniqueFunctionName)(tool)) { app.post((0, util_1.getAiToolUrl)(tool), json_response_1.default, (0, crowdin_client_1.default)({ config, optional: false, checkSubscriptionExpiration: true, moduleKey: tool.key, }), (0, tool_calls_1.default)(tool)); } else { throw new Error(`The function name '${tool.function.name}' is not unique within aiTools and aiToolsWidget`); } } } exports.registerAiTools = registerAiTools; function registerAiToolWidgets({ config, app }) { if (!config.aiToolsWidget) { return; } const tools = Array.isArray(config.aiToolsWidget) ? config.aiToolsWidget : [config.aiToolsWidget]; for (const tool of tools) { if ((0, util_1.isUniqueFunctionName)(tool)) { app.use((0, util_1.getAiToolWidgetUrl)(tool), (0, ui_module_1.default)({ config, moduleType: tool.key }), (0, render_ui_module_1.default)(tool)); } else { throw new Error(`The function name '${tool.function.name}' is not unique within aiTools and aiToolsWidget`); } } } exports.registerAiToolWidgets = registerAiToolWidgets;