@crowdin/app-project-module
Version:
Module that generates for you all common endpoints for serving standalone Crowdin App
90 lines (89 loc) • 4.78 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerFilePostExport = exports.registerFilePreExport = exports.registerFilePostImport = exports.registerFilePreImport = exports.registerCustomFileFormat = void 0;
const crowdin_client_1 = __importDefault(require("../../middlewares/crowdin-client"));
const custom_file_format_1 = __importDefault(require("./handlers/custom-file-format"));
const file_download_1 = __importDefault(require("./handlers/file-download"));
const pre_post_process_1 = __importDefault(require("./handlers/pre-post-process"));
const types_1 = require("./types");
const defaults_1 = require("./util/defaults");
function registerCustomFileFormat({ config, app }) {
if (!config.customFileFormat) {
return;
}
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.customFileFormat);
app.post('/file/process', (0, crowdin_client_1.default)({
config,
optional: false,
checkSubscriptionExpiration: true,
moduleKey: config.customFileFormat.key,
}), (0, custom_file_format_1.default)(config.baseUrl, config.customFileFormat.filesFolder || config.dbFolder, config.customFileFormat));
// TEMPORARY CODE: it needs to support old path
app.post('/process', (0, crowdin_client_1.default)({
config,
optional: false,
checkSubscriptionExpiration: true,
}), (0, custom_file_format_1.default)(config.baseUrl, config.customFileFormat.filesFolder || config.dbFolder, config.customFileFormat));
// END TEMPORARY CODE
app.get('/file/download', (0, file_download_1.default)(config, config.customFileFormat, 'custom-file-format'));
}
exports.registerCustomFileFormat = registerCustomFileFormat;
function registerFilePreImport({ config, app }) {
if (!config.filePreImport) {
return;
}
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.filePreImport);
app.post('/pre-import', (0, crowdin_client_1.default)({
config,
optional: false,
checkSubscriptionExpiration: true,
moduleKey: config.filePreImport.key,
}), (0, pre_post_process_1.default)(config, config.filePreImport, types_1.ProcessFileJobType.PRE_IMPORT));
app.get(`/file/download/${types_1.ProcessFileJobType.PRE_IMPORT}`, (0, file_download_1.default)(config, config.filePreImport, types_1.ProcessFileJobType.PRE_IMPORT));
}
exports.registerFilePreImport = registerFilePreImport;
function registerFilePostImport({ config, app }) {
if (!config.filePostImport) {
return;
}
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.filePostImport);
app.post('/post-import', (0, crowdin_client_1.default)({
config,
optional: false,
checkSubscriptionExpiration: true,
moduleKey: config.filePostImport.key,
}), (0, pre_post_process_1.default)(config, config.filePostImport, types_1.ProcessFileJobType.POST_IMPORT));
app.get(`/file/download/${types_1.ProcessFileJobType.POST_IMPORT}`, (0, file_download_1.default)(config, config.filePostImport, types_1.ProcessFileJobType.POST_IMPORT));
}
exports.registerFilePostImport = registerFilePostImport;
function registerFilePreExport({ config, app }) {
if (!config.filePreExport) {
return;
}
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.filePreExport);
app.post('/pre-export', (0, crowdin_client_1.default)({
config,
optional: false,
checkSubscriptionExpiration: true,
moduleKey: config.filePreExport.key,
}), (0, pre_post_process_1.default)(config, config.filePreExport, types_1.ProcessFileJobType.PRE_EXPORT));
app.get(`/file/download/${types_1.ProcessFileJobType.PRE_EXPORT}`, (0, file_download_1.default)(config, config.filePreExport, types_1.ProcessFileJobType.PRE_EXPORT));
}
exports.registerFilePreExport = registerFilePreExport;
function registerFilePostExport({ config, app }) {
if (!config.filePostExport) {
return;
}
(0, defaults_1.applyFileProcessorsModuleDefaults)(config, config.filePostExport);
app.post('/post-export', (0, crowdin_client_1.default)({
config,
optional: false,
checkSubscriptionExpiration: true,
moduleKey: config.filePostExport.key,
}), (0, pre_post_process_1.default)(config, config.filePostExport, types_1.ProcessFileJobType.POST_EXPORT));
app.get(`/file/download/${types_1.ProcessFileJobType.POST_EXPORT}`, (0, file_download_1.default)(config, config.filePostExport, types_1.ProcessFileJobType.POST_EXPORT));
}
exports.registerFilePostExport = registerFilePostExport;