@netlify/content-engine
Version:
45 lines • 1.94 kB
JavaScript
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
;