UNPKG

@akashic/akashic-sandbox

Version:
37 lines (36 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var fs = require("fs"); var path = require("path"); var controller = function (req, res, _next) { var scriptPath = path.resolve(path.join(req.baseDir, "sandbox.config.js")); if (!fs.existsSync(scriptPath)) { res.contentType("text/javascript"); res.send(createLoadingScript({})); return; } var sandboxConfig = {}; try { sandboxConfig = require(scriptPath); delete require.cache[require.resolve(scriptPath)]; // 設定ファイルの更新に追従するためアクセス毎にキャッシュを削除する sandboxConfig = completeConfigParams(sandboxConfig); } catch (error) { console.log(error); } res.contentType("text/javascript"); res.send(createLoadingScript(sandboxConfig)); }; module.exports = controller; function completeConfigParams(c) { var config = { autoSendEventName: c.autoSendEventName ? c.autoSendEventName : "", events: c.events ? c.events : {}, showMenu: !!c.showMenu, warn: c.warn ? c.warn : {} }; return config; } function createLoadingScript(content) { return "window.sandboxDeveloperProps = window.sandboxDeveloperProps || {};\nwindow.sandboxDeveloperProps.sandboxConfig = " + JSON.stringify(content) + ";\n"; }