UNPKG

clumsy-graphics

Version:

a tool for rapidly developing animations where frames are described using svg elements à la react 🙃

51 lines (50 loc) 2.13 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getClientServerEventChannel = void 0; const express_1 = __importDefault(require("express")); const redux_saga_1 = require("redux-saga"); function getClientServerEventChannel(api) { const { clientServerPort } = api; const clientServerEventChannel = (0, redux_saga_1.eventChannel)((emitClientServerEvent) => { const clientServer = (0, express_1.default)(); clientServer.get('/api/latestAnimationModule/graphicsRendererProcessState', (someClientRequest, someServerResponse) => { emitClientServerEvent({ eventType: 'clientRequestsGraphicsRendererProcessState', eventPayload: { clientRequest: someClientRequest, serverResponse: someServerResponse, }, }); }); clientServer.get('/asset/:assetFilename', (someClientRequest, someServerResponse) => { emitClientServerEvent({ eventType: 'clientRequestsGraphicAsset', eventPayload: { clientRequest: someClientRequest, serverResponse: someServerResponse, }, }); }); clientServer.get('*', (someClientRequest, someServerResponse) => { emitClientServerEvent({ eventType: 'clientRequestsPage', eventPayload: { clientRequest: someClientRequest, serverResponse: someServerResponse, }, }); }); clientServer.listen(clientServerPort, () => { emitClientServerEvent({ eventType: 'clientServerListening', eventPayload: {}, }); }); return () => { }; }, redux_saga_1.buffers.expanding(5)); return { clientServerEventChannel }; } exports.getClientServerEventChannel = getClientServerEventChannel;