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