UNPKG

@devgrid/netron

Version:

A powerful TypeScript library for building distributed systems with event bus, streaming capabilities, and remote object invocation. Features WebSocket-based bidirectional communication between Node.js and browser environments, service discovery, and type

40 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.serializer = void 0; const messagepack_1 = require("@devgrid/messagepack"); const reference_1 = require("../reference"); const definition_1 = require("../definition"); const stream_reference_1 = require("../stream-reference"); exports.serializer = new messagepack_1.Serializer(); (0, messagepack_1.registerCommonTypesFor)(exports.serializer); exports.serializer .register(109, definition_1.Definition, (obj, buf) => { exports.serializer.encode(obj.id, buf); exports.serializer.encode(obj.parentId, buf); exports.serializer.encode(obj.peerId, buf); exports.serializer.encode(obj.meta, buf); }, (buf) => { const id = exports.serializer.decode(buf); const parentId = exports.serializer.decode(buf); const peerId = exports.serializer.decode(buf); const meta = exports.serializer.decode(buf); const def = new definition_1.Definition(id, peerId, meta); def.parentId = parentId; return def; }) .register(108, reference_1.Reference, (obj, buf) => { exports.serializer.encode(obj.defId, buf); }, (buf) => new reference_1.Reference(exports.serializer.decode(buf))) .register(107, stream_reference_1.StreamReference, (obj, buf) => { exports.serializer.encode(obj.streamId.toString(), buf); buf.writeUInt8(obj.type === 'writable' ? 1 : 0); buf.writeUInt8(obj.isLive ? 1 : 0); exports.serializer.encode(obj.peerId, buf); }, (buf) => { const streamId = Number(exports.serializer.decode(buf)); const streamType = buf.readUInt8() === 1 ? 'writable' : 'readable'; const isLive = buf.readUInt8() === 1; const peerId = exports.serializer.decode(buf); return new stream_reference_1.StreamReference(streamId, streamType, isLive, peerId); }); //# sourceMappingURL=serializer.js.map