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