UNPKG

intlayer-editor

Version:

Integrate the Intlayer visual editor into your Intlayer projects, enabling CMS-like content management with multilingual support.

78 lines (75 loc) 4.08 kB
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs'); const require_routes_config_routes = require('./routes/config.routes.cjs'); const require_routes_dictionary_routes = require('./routes/dictionary.routes.cjs'); const require_utils_checkPortAvailability = require('./utils/checkPortAvailability.cjs'); let _intlayer_config = require("@intlayer/config"); let express_intlayer = require("express-intlayer"); let node_fs = require("node:fs"); let node_path = require("node:path"); let node_url = require("node:url"); let express = require("express"); express = require_rolldown_runtime.__toESM(express); let compression = require("compression"); compression = require_rolldown_runtime.__toESM(compression); let cookie_parser = require("cookie-parser"); cookie_parser = require_rolldown_runtime.__toESM(cookie_parser); let cors = require("cors"); cors = require_rolldown_runtime.__toESM(cors); let helmet = require("helmet"); helmet = require_rolldown_runtime.__toESM(helmet); let mime = require("mime"); mime = require_rolldown_runtime.__toESM(mime); //#region src/index.ts const __dirname$1 = (0, node_path.dirname)((0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href)); const envFileOptions = { env: process.env.NODE_ENV, envFile: process.env.ENV_FILE }; const packageJson = JSON.parse((0, node_fs.readFileSync)((0, node_path.resolve)(__dirname$1, "../../package.json"), "utf8")); const app = (0, express.default)(); app.use((0, express_intlayer.intlayer)()); const FALLBACK_PORT = 8e3; const config = (0, _intlayer_config.getConfiguration)(envFileOptions); const port = config.editor.port ?? FALLBACK_PORT; const clientDistPath = (0, node_path.resolve)(__dirname$1, "../../client/dist"); const corsOptions = { origin: "*", credentials: true }; const startServer = async (app$1) => { if (!await require_utils_checkPortAvailability.checkPortAvailability(port)) { console.error(`\x1b[1;31mError: Port ${port} is already in use.\x1b[0m`); process.exit(255); } app$1.disable("x-powered-by"); app$1.use((0, helmet.default)({ contentSecurityPolicy: false })); app$1.use((0, cors.default)(corsOptions)); app$1.use((0, compression.default)()); app$1.use(express.default.json()); app$1.use((0, cookie_parser.default)()); app$1.use(express.default.urlencoded({ extended: true })); app$1.use("/api/dictionary", require_routes_dictionary_routes.dictionaryRouter); app$1.use("/api/config", require_routes_config_routes.configurationRouter); app$1.use(express.default.static(clientDistPath)); app$1.get(/(.*)/, (req, res) => { const requestedPath = (0, node_path.join)(clientDistPath, req.url); if ((0, node_fs.existsSync)(requestedPath) && (0, node_fs.lstatSync)(requestedPath).isFile()) { const mimeType = mime.default.getType(requestedPath) ?? "application/octet-stream"; res.setHeader("Content-Type", mimeType); res.sendFile(requestedPath); } else res.sendFile((0, node_path.resolve)(clientDistPath, "index.html")); }); app$1.listen(port, () => { const dotEnvFilePath = (0, _intlayer_config.getEnvFilePath)(envFileOptions.env, envFileOptions.envFile); console.log(` ${(0, _intlayer_config.colorize)((0, _intlayer_config.colorize)("INTLAYER", _intlayer_config.ANSIColors.BOLD), _intlayer_config.ANSIColors.GREY_DARK)} ${(0, _intlayer_config.colorize)(`v${packageJson.version}`, _intlayer_config.ANSIColors.GREY_DARK)} Editor running at: ${(0, _intlayer_config.colorizePath)(`http://localhost:${port}`)} ${(0, _intlayer_config.colorize)("➜", _intlayer_config.ANSIColors.GREY_DARK)} Watching application at: ${config.editor.applicationURL === "" ? "-" : (0, _intlayer_config.colorizePath)(config.editor.applicationURL)} ${(0, _intlayer_config.colorize)("➜", _intlayer_config.ANSIColors.GREY_DARK)} Access key: ${config.editor.clientId ?? "-"} ${(0, _intlayer_config.colorize)("➜", _intlayer_config.ANSIColors.GREY_DARK)} Environment: ${dotEnvFilePath ?? "-"} `); }); }; startServer(app); //#endregion //# sourceMappingURL=index.cjs.map