@aptpod/iscp-ts
Version:
iSCP 2.0 client library for TypeScript
222 lines • 7.08 kB
JavaScript
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