UNPKG

@netlify/content-engine

Version:
61 lines 2.34 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.startGraphQLServer = startGraphQLServer; const better_opn_1 = __importDefault(require("better-opn")); const reporter_1 = __importDefault(require("../reporter")); const chalk_1 = __importDefault(require("chalk")); const prepare_urls_1 = require("../utils/prepare-urls"); const start_server_1 = require("../utils/start-server"); const reporter_2 = __importDefault(require("../reporter")); const redux_1 = require("../redux"); let server; async function startGraphQLServer({ program, app, store, loadData, }) { if (!program || !app || !store) { reporter_1.default.panic(`Missing required params. Missing program: ${!program}, app: ${!app}, store: ${!store}. Stack: ${new Error().stack}`); } if (!server) { const { listener } = await (0, start_server_1.startServer)(program, app); server = listener; } let loading = false; const queuedReloads = []; const webhookHandler = async (action) => { if (loading && queuedReloads.length < 50) { queuedReloads.push(action); } else if (!loading) { try { loading = true; await loadData(action); const queuedReload = queuedReloads.shift(); if (queuedReload) { setImmediate(() => { webhookHandler(queuedReload); }); } else { loading = false; } } catch (e) { reporter_2.default.error(e); loading = false; } } }; redux_1.emitter.on(`WEBHOOK_RECEIVED`, webhookHandler); const urls = (0, prepare_urls_1.prepareUrls)(program.https ? `https` : `http`, program.host, program.port); if (program.open) { try { await (0, better_opn_1.default)(urls.localUrlForBrowser); } catch { console.log(`${chalk_1.default.yellow(`warn`)} Browser not opened because no browser was found`); } } return server; } //# sourceMappingURL=start-dev-server.js.map