UNPKG

@netlify/content-engine

Version:
45 lines 1.94 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.startLocalServer = startLocalServer; const os_1 = __importDefault(require("os")); const path_1 = __importDefault(require("path")); const express_1 = __importDefault(require("express")); const fs_1 = require("./adapters/fs"); let server; let serverUrl; let app; let port; function startLocalServer() { if (serverUrl && server && app && port) { return { ledgerUrl: serverUrl, server, app, port }; } port = process.env.LOCAL_LEDGER_SERVER_PORT || 9808; const basePath = `ledger`; serverUrl = `http://localhost:${port}/${basePath}`; app = (0, express_1.default)(); const handlerOpts = { rootDir: path_1.default.join(os_1.default.tmpdir(), `.ledgers`) }; app.post(`/${basePath}/write/`, (0, fs_1.makeFSLedgerWriteHandler)(handlerOpts)); app.post(`/${basePath}/write/:ledgerId/:configurationId/:cacheId/:blockVersionId`, (0, fs_1.makeFSLedgerWriteHandler)(handlerOpts)); app.get(`/${basePath}/read/`, (0, fs_1.makeFSLedgerReadHandler)(handlerOpts)); // This is what's in Cloud, but TODO move to using headers instead of url paths app.get(`/${basePath}/read/:dataLayerId/:configurationId/:cacheId`, (0, fs_1.makeFSLedgerReadHandler)(handlerOpts)); server = new Promise((res) => { const appServer = app.listen(port, () => { console.info(`Local ledger server running at ${serverUrl}`); res(appServer); }); }); server.then((resolvedServer) => { process.on(`exit`, () => { resolvedServer?.close(); }); process.on(`close`, () => { resolvedServer?.close(); }); }); return { ledgerUrl: serverUrl, server, app, port }; } //# sourceMappingURL=local-server.js.map