UNPKG

@crowdin/app-project-module

Version:

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

46 lines (45 loc) 2.83 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 = void 0; const cors_1 = __importDefault(require("cors")); const output_schema_1 = __importDefault(require("./handlers/output-schema")); const input_schema_1 = __importDefault(require("./handlers/input-schema")); const validate_settings_1 = __importDefault(require("./handlers/validate-settings")); const execute_1 = __importDefault(require("./handlers/execute")); const util_1 = require("./util"); const crowdin_client_1 = __importDefault(require("../../middlewares/crowdin-client")); const ui_module_1 = __importDefault(require("../../middlewares/ui-module")); const render_ui_module_1 = __importDefault(require("../../middlewares/render-ui-module")); function register({ config, app }) { if (!config.automationAction) { return; } const automationActions = Array.isArray(config.automationAction) ? config.automationAction : [config.automationAction]; for (const automationAction of automationActions) { app.options((0, util_1.getAutomationActionUrl)('/automation-action/output-schema', automationAction), (0, cors_1.default)()); app.get((0, util_1.getAutomationActionUrl)('/automation-action/output-schema', automationAction), (0, cors_1.default)(), (0, output_schema_1.default)(automationAction)); app.options((0, util_1.getAutomationActionUrl)('/automation-action/input-schema', automationAction), (0, cors_1.default)()); app.get((0, util_1.getAutomationActionUrl)('/automation-action/input-schema', automationAction), (0, cors_1.default)(), (0, input_schema_1.default)(automationAction)); app.post((0, util_1.getAutomationActionUrl)('/automation-action/validate-settings', automationAction), (0, crowdin_client_1.default)({ config, optional: true, checkSubscriptionExpiration: false, moduleKey: automationAction.key, }), (0, validate_settings_1.default)(automationAction)); app.post((0, util_1.getAutomationActionUrl)('/automation-action/execute', automationAction), (0, cors_1.default)(), (0, crowdin_client_1.default)({ config, optional: true, checkSubscriptionExpiration: false, moduleKey: automationAction.key, }), (0, execute_1.default)(automationAction)); if (automationAction.settingsUiModule) { app.use((0, util_1.getAutomationActionUrl)('/automation-action', automationAction), (0, ui_module_1.default)({ config, moduleType: automationAction.key }), (0, render_ui_module_1.default)(automationAction.settingsUiModule)); } } } exports.register = register;