UNPKG

@crowdin/app-project-module

Version:

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

36 lines (35 loc) 1.8 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 = register; const crowdin_client_1 = require("../../middlewares/crowdin-client"); const json_response_1 = require("../../middlewares/json-response"); const render_ui_module_1 = __importDefault(require("../../middlewares/render-ui-module")); const ui_module_1 = __importDefault(require("../../middlewares/ui-module")); const recheck_1 = __importDefault(require("./handlers/recheck")); const key_1 = require("./key"); function register({ config, app }) { if (!config.advisorInspector) { return; } const items = config.advisorInspector; const isSingle = items.length === 1; for (const [index, inspector] of items.entries()) { const key = (0, key_1.resolveAdvisorInspectorKey)(config, inspector, index, isSingle); const base = `/advisor-inspector/${key}`; // Recheck nudge endpoint (BE → app, fire-and-forget). // checkSubscriptionExpiration=false: nudges are platform traffic; 402-ing here // would mask the async flow. App-paid features should gate inside onRecheck. app.post(`${base}/recheck`, json_response_1.handle, (0, crowdin_client_1.handle)({ config, optional: false, checkSubscriptionExpiration: false, moduleKey: key, }), (0, recheck_1.default)(inspector, key)); if (inspector.uiPath || inspector.formSchema) { app.use(`${base}/iframe`, (0, ui_module_1.default)({ config, moduleType: key }), (0, render_ui_module_1.default)(Object.assign(Object.assign({}, inspector), { key }), config)); } } }