UNPKG

@aptpod/iscp-ts

Version:

iSCP 2.0 client library for TypeScript

222 lines 7.08 kB
import { ISCPMalformedMessageError } from '../../exceptions'; import { DownstreamChunk, DownstreamChunkExtensionFields, StreamChunk, UpstreamInfo, DataId, DataPointGroup, DataPoint, } from '../../message'; const WIRE_DOWNSTREAM_CHUNK = new DownstreamChunk({ streamIdAlias: 123, upstreamOrAlias: new UpstreamInfo({ sessionId: 'sessionId', streamId: '01020304-0506-4708-890a-111213141516', sourceNodeId: 'sourceNodeId', }), streamChunk: new StreamChunk({ sequenceNumber: 4567, dataPointGroups: [ new DataPointGroup({ dataIdOrAlias: new DataId({ name: 'name', type: 'type', }), dataPoints: [ new DataPoint({ elapsedTime: 123n, payload: new Uint8Array([0x00, 0x01, 0x02, 0x03]), }), ], }), ], }), extensionFields: undefined, }); const PROTO_DOWNSTREAM_CHUNK = { streamIdAlias: 123, upstreamOrAlias: { oneofKind: 'upstreamInfo', upstreamInfo: { sessionId: 'sessionId', streamId: new Uint8Array([ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x47, 0x08, 0x89, 0x0a, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, ]), sourceNodeId: 'sourceNodeId', }, }, streamChunk: { sequenceNumber: 4567, dataPointGroups: [ { dataIdOrAlias: { oneofKind: 'dataId', dataId: { name: 'name', type: 'type', }, }, dataPoints: [ { elapsedTime: 123n, payload: new Uint8Array([0x00, 0x01, 0x02, 0x03]), }, ], }, ], }, extensionFields: undefined, }; export const withoutExtensionFields = { toWire: () => { return new DownstreamChunk({ ...WIRE_DOWNSTREAM_CHUNK, }); }, toProto: () => { return { message: { oneofKind: 'downstreamChunk', downstreamChunk: { ...PROTO_DOWNSTREAM_CHUNK, }, }, }; }, }; export const withExtensionFields = { toWire: () => { return new DownstreamChunk({ ...WIRE_DOWNSTREAM_CHUNK, extensionFields: new DownstreamChunkExtensionFields(), }); }, toProto: () => { return { message: { oneofKind: 'downstreamChunk', downstreamChunk: { ...PROTO_DOWNSTREAM_CHUNK, extensionFields: {}, }, }, }; }, }; export const withAliasId = { toWire: () => { return new DownstreamChunk({ ...WIRE_DOWNSTREAM_CHUNK, upstreamOrAlias: 123, streamChunk: { sequenceNumber: 4567, dataPointGroups: [ new DataPointGroup({ dataIdOrAlias: 9901, dataPoints: [ new DataPoint({ elapsedTime: 123n, payload: new Uint8Array([0x00, 0x01, 0x02, 0x03]), }), ], }), ], }, }); }, toProto: () => { return { message: { oneofKind: 'downstreamChunk', downstreamChunk: { ...PROTO_DOWNSTREAM_CHUNK, upstreamOrAlias: { oneofKind: 'upstreamAlias', upstreamAlias: 123, }, streamChunk: { sequenceNumber: 4567, dataPointGroups: [ { dataIdOrAlias: { oneofKind: 'dataIdAlias', dataIdAlias: 9901, }, dataPoints: [ { elapsedTime: 123n, payload: new Uint8Array([0x00, 0x01, 0x02, 0x03]), }, ], }, ], }, }, }, }; }, }; export const invalidWire = { upstreamInfoStreamId: { toWire: () => { return new DownstreamChunk({ ...WIRE_DOWNSTREAM_CHUNK, upstreamOrAlias: new UpstreamInfo({ sessionId: 'sessionId', streamId: '00010203', sourceNodeId: 'sourceNodeId', }), }); }, toErrorClass: () => { return TypeError; }, toError: () => { return new (invalidWire.upstreamInfoStreamId.toErrorClass())('Invalid UUID'); }, }, }; export const invalidProto = { upstreamInfoStreamId: { toProto: () => { return { message: { oneofKind: 'downstreamChunk', downstreamChunk: { ...PROTO_DOWNSTREAM_CHUNK, upstreamOrAlias: { oneofKind: 'upstreamInfo', upstreamInfo: { sessionId: 'sessionId', streamId: new Uint8Array([0x00, 0x01, 0x02, 0x03]), sourceNodeId: 'sourceNodeId', }, }, }, }, }; }, toErrorClass: () => { return TypeError; }, toError: () => { return new (invalidProto.upstreamInfoStreamId.toErrorClass())('Stringified UUID is invalid'); }, }, upstreamOrAliasOneOf: { toProto: () => { return { message: { oneofKind: 'downstreamChunk', downstreamChunk: { ...PROTO_DOWNSTREAM_CHUNK, upstreamOrAlias: { // @ts-ignore oneofKind: '__unrecognized__', }, }, }, }; }, toErrorClass: () => { return ISCPMalformedMessageError; }, toError: () => { return new (invalidProto.upstreamInfoStreamId.toErrorClass())('Unrecognized upstreamOrAlias.'); }, }, }; //# sourceMappingURL=downstream-chunk.js.map