@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
JavaScript
;
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;