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