UNPKG

@aptpod/iscp-ts

Version:

iSCP 2.0 client library for TypeScript

170 lines 5.55 kB
import { ISCPMalformedMessageError } from '../../exceptions'; import { UpstreamChunk, UpstreamChunkExtensionFields, StreamChunk, DataPointGroup, DataPoint, DataId, } from '../../message'; const WIRE_UPSTREAM_CHUNK = new UpstreamChunk({ streamIdAlias: 1234, 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]), }), ], }), ], }), dataIds: [new DataId({ name: 'name', type: 'type' })], extensionFields: undefined, }); const PROTO_UPSTREAM_CHUNK = { streamIdAlias: 1234, streamChunk: { sequenceNumber: 4567, dataPointGroups: [ { dataIdOrAlias: { oneofKind: 'dataId', dataId: { name: 'name', type: 'type' }, }, dataPoints: [ { elapsedTime: 123n, payload: new Uint8Array([0x00, 0x01, 0x02, 0x03]), }, ], }, ], }, dataIds: [{ name: 'name', type: 'type' }], extensionFields: undefined, }; export const withoutExtensionFields = { toWire: () => { return new UpstreamChunk({ ...WIRE_UPSTREAM_CHUNK, }); }, toProto: () => { return { message: { oneofKind: 'upstreamChunk', upstreamChunk: { ...PROTO_UPSTREAM_CHUNK, }, }, }; }, }; export const withExtensionFields = { toWire: () => { return new UpstreamChunk({ ...WIRE_UPSTREAM_CHUNK, extensionFields: new UpstreamChunkExtensionFields(), }); }, toProto: () => { return { message: { oneofKind: 'upstreamChunk', upstreamChunk: { ...PROTO_UPSTREAM_CHUNK, extensionFields: {}, }, }, }; }, }; export const withAliasId = { toWire: () => { return new UpstreamChunk({ ...WIRE_UPSTREAM_CHUNK, streamChunk: new StreamChunk({ ...WIRE_UPSTREAM_CHUNK.streamChunk, dataPointGroups: [ new DataPointGroup({ dataIdOrAlias: 2000, dataPoints: [ new DataPoint({ elapsedTime: 123n, payload: new Uint8Array([0x00, 0x01, 0x02, 0x03]), }), ], }), ], }), }); }, toProto: () => { return { message: { oneofKind: 'upstreamChunk', upstreamChunk: { ...PROTO_UPSTREAM_CHUNK, streamChunk: { ...PROTO_UPSTREAM_CHUNK.streamChunk, dataPointGroups: [ { dataIdOrAlias: { oneofKind: 'dataIdAlias', dataIdAlias: 2000, }, dataPoints: [ { elapsedTime: 123n, payload: new Uint8Array([0x00, 0x01, 0x02, 0x03]), }, ], }, ], }, }, }, }; }, }; // @memo no test // export const invalidWire = {} export const invalidProto = { dataIdOrAliasOneOf: { toProto: () => { return { message: { oneofKind: 'upstreamChunk', upstreamChunk: { ...PROTO_UPSTREAM_CHUNK, streamChunk: { ...PROTO_UPSTREAM_CHUNK.streamChunk, dataPointGroups: [ { dataIdOrAlias: { // @ts-ignore oneofKind: '__unrecognized__', }, dataPoints: [ { elapsedTime: 123n, payload: new Uint8Array([0x00, 0x01, 0x02, 0x03]), }, ], }, ], }, }, }, }; }, toErrorClass: () => { return ISCPMalformedMessageError; }, toError: () => { return new (invalidProto.dataIdOrAliasOneOf.toErrorClass())('Unrecognized dataIdOrAlias.'); }, }, }; //# sourceMappingURL=upstream-chunk.js.map