UNPKG

@crowdin/app-project-module

Version:

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

46 lines (45 loc) 2.43 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 = exports.generateModuleSlugFromType = exports.AiRequestProcessorModuleWithoutStream = exports.AiRequestProcessorModuleWithStream = void 0; const json_response_1 = __importDefault(require("../../middlewares/json-response")); const crowdin_client_1 = __importDefault(require("../../middlewares/crowdin-client")); const handler_1 = __importDefault(require("./handler")); var AiRequestProcessorModuleWithStream; (function (AiRequestProcessorModuleWithStream) { AiRequestProcessorModuleWithStream["aiRequestPreParse"] = "aiRequestPreParse"; })(AiRequestProcessorModuleWithStream = exports.AiRequestProcessorModuleWithStream || (exports.AiRequestProcessorModuleWithStream = {})); var AiRequestProcessorModuleWithoutStream; (function (AiRequestProcessorModuleWithoutStream) { AiRequestProcessorModuleWithoutStream["aiRequestPreCompile"] = "aiRequestPreCompile"; AiRequestProcessorModuleWithoutStream["aiRequestPostCompile"] = "aiRequestPostCompile"; AiRequestProcessorModuleWithoutStream["aiRequestPostParse"] = "aiRequestPostParse"; })(AiRequestProcessorModuleWithoutStream = exports.AiRequestProcessorModuleWithoutStream || (exports.AiRequestProcessorModuleWithoutStream = {})); function generateModuleSlugFromType(moduleType) { return moduleType .split(/\.?(?=[A-Z])/) .join('-') .toLowerCase(); } exports.generateModuleSlugFromType = generateModuleSlugFromType; function registerProcessorModuleByTypeKey(moduleKey, { config, app }) { const module = config[moduleKey]; if (!module) { return; } app.post('/ai-request-processor/' + generateModuleSlugFromType(moduleKey), json_response_1.default, (0, crowdin_client_1.default)({ config, optional: false, checkSubscriptionExpiration: true, moduleKey: module.key, }), (0, handler_1.default)(module, moduleKey in AiRequestProcessorModuleWithStream)); } function register({ config, app }) { [ ...Object.values(AiRequestProcessorModuleWithoutStream), ...Object.values(AiRequestProcessorModuleWithStream), ].forEach((moduleTypeKey) => registerProcessorModuleByTypeKey(moduleTypeKey, { config, app })); } exports.register = register;