@aptpod/iscp-ts
Version:
iSCP 2.0 client library for TypeScript
504 lines • 22.3 kB
JavaScript
import { stringToBytes as UUID$stringToBytes, bytesToString as UUID$bytesToString } from '../../utils/uuid';
import { map as Object$map } from '../../utils/object';
import { ISCPMalformedMessageError } from '../../exceptions';
import { UpstreamInfo, DownstreamOpenRequestExtensionFields, DownstreamOpenResponseExtensionFields, DownstreamResumeRequestExtensionFields, DownstreamResumeResponseExtensionFields, DownstreamCloseRequestExtensionFields, DownstreamCloseResponseExtensionFields, DownstreamChunkExtensionFields, DownstreamChunkAckExtensionFields, DownstreamChunkAckCompleteExtensionFields, DownstreamMetadataExtensionFields, DownstreamMetadataAckExtensionFields, DownstreamChunkResultExtensionFields, DownstreamChunkResult, DownstreamOpenRequest, DownstreamOpenResponse, DownstreamResumeRequest, DownstreamResumeResponse, DownstreamCloseRequest, DownstreamCloseResponse, DownstreamChunk, DownstreamChunkAck, DownstreamChunkAckComplete, DownstreamMetadata, DownstreamMetadataAck, DataId, } from '../../message';
import { BaseTime, UpstreamOpen, UpstreamAbnormalClose, UpstreamResume, UpstreamNormalClose, DownstreamOpen, DownstreamAbnormalClose, DownstreamResume, DownstreamNormalClose, } from '../../message/metadata';
import { WireToProto as Common$WireToProto, ProtoToWire as Common$ProtoToWire } from './common';
import { WireToProto as ResultCode$WireToProto, ProtoToWire as ResultCode$ProtoToWire } from './result-code';
import { WireToProto as Metadata$WireToProto, ProtoToWire as Metadata$ProtoToWire } from './metadata';
export class WireToProto {
static upstreamInfo(wire) {
return {
sessionId: wire.sessionId,
streamId: UUID$stringToBytes(wire.streamId),
sourceNodeId: wire.sourceNodeId,
};
}
static downstreamOpenRequestExtensionFields(_wire) {
return {};
}
static downstreamOpenResponseExtensionFields(_wire) {
return {};
}
static downstreamResumeRequestExtensionFields(_wire) {
return {};
}
static downstreamResumeResponseExtensionFields(_wire) {
return {};
}
static downstreamCloseRequestExtensionFields(_wire) {
return {};
}
static downstreamCloseResponseExtensionFields(_wire) {
return {};
}
static downstreamChunkExtensionFields(_wire) {
return {};
}
static downstreamChunkAckExtensionFields(_wire) {
return {};
}
static downstreamChunkAckCompleteExtensionFields(_wire) {
return {};
}
static downstreamMetadataExtensionFields(_wire) {
return {};
}
static downstreamMetadataAckExtensionFields(_wire) {
return {};
}
static downstreamChunkResultExtensionFields(_wire) {
return {};
}
static downstreamChunkResult(wire) {
return {
streamIdOfUpstream: UUID$stringToBytes(wire.streamIdOfUpstream),
sequenceNumberInUpstream: wire.sequenceNumberInUpstream,
resultCode: ResultCode$WireToProto.resultCode(wire.resultCode),
resultString: wire.resultString,
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamChunkResultExtensionFields(wire.extensionFields),
};
}
static downstreamOpenRequest(wire) {
return {
requestId: wire.requestId,
desiredStreamIdAlias: wire.desiredStreamIdAlias,
downstreamFilters: wire.downstreamFilters.map((downstreamFilter) => {
return Common$WireToProto.downstreamFilter(downstreamFilter);
}),
expiryInterval: wire.expiryInterval,
dataIdAliases: Object$map({
source: wire.dataIdAliases,
keyConverter: (alias) => Number(alias),
valueConverter: (dataId) => ({
name: dataId.name,
type: dataId.type,
}),
}),
qos: Common$WireToProto.qos(wire.qos),
omitEmptyChunk: wire.omitEmptyChunk,
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamOpenRequestExtensionFields(wire.extensionFields),
};
}
static downstreamOpenResponse(wire) {
return {
requestId: wire.requestId,
assignedStreamId: UUID$stringToBytes(wire.assignedStreamId),
serverTime: wire.serverTime,
resultCode: ResultCode$WireToProto.resultCode(wire.resultCode),
resultString: wire.resultString,
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamOpenResponseExtensionFields(wire.extensionFields),
};
}
static downstreamResumeRequest(wire) {
return {
requestId: wire.requestId,
streamId: UUID$stringToBytes(wire.streamId),
desiredStreamIdAlias: wire.desiredStreamIdAlias,
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamResumeRequestExtensionFields(wire.extensionFields),
};
}
static downstreamResumeResponse(wire) {
return {
requestId: wire.requestId,
resultCode: ResultCode$WireToProto.resultCode(wire.resultCode),
resultString: wire.resultString,
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamResumeResponseExtensionFields(wire.extensionFields),
};
}
static downstreamCloseRequest(wire) {
return {
requestId: wire.requestId,
streamId: UUID$stringToBytes(wire.streamId),
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamCloseRequestExtensionFields(wire.extensionFields),
};
}
static downstreamCloseResponse(wire) {
return {
requestId: wire.requestId,
resultCode: ResultCode$WireToProto.resultCode(wire.resultCode),
resultString: wire.resultString,
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamCloseResponseExtensionFields(wire.extensionFields),
};
}
static upstreamOrAlias(wire) {
if (wire instanceof UpstreamInfo) {
return {
oneofKind: 'upstreamInfo',
upstreamInfo: WireToProto.upstreamInfo(wire),
};
}
else if (typeof wire === 'number') {
return {
oneofKind: 'upstreamAlias',
upstreamAlias: wire,
};
}
throw new ISCPMalformedMessageError('Unrecognized upstreamOrAlias.');
}
static downstreamChunk(wire) {
return {
streamIdAlias: wire.streamIdAlias,
upstreamOrAlias: WireToProto.upstreamOrAlias(wire.upstreamOrAlias),
streamChunk: Common$WireToProto.streamChunk(wire.streamChunk),
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamChunkExtensionFields(wire.extensionFields),
};
}
static downstreamChunkAck(wire) {
return {
streamIdAlias: wire.streamIdAlias,
ackId: wire.ackId,
results: wire.results.map((result) => WireToProto.downstreamChunkResult(result)),
upstreamAliases: Object$map({
source: wire.upstreamAliases,
keyConverter: (key) => Number(key),
valueConverter: (value) => WireToProto.upstreamInfo(value),
}),
dataIdAliases: Object$map({
source: wire.dataIdAliases,
keyConverter: (key) => Number(key),
valueConverter: (value) => Common$WireToProto.dataId(value),
}),
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamChunkAckExtensionFields(wire.extensionFields),
};
}
static downstreamChunkAckComplete(wire) {
return {
streamIdAlias: wire.streamIdAlias,
ackId: wire.ackId,
resultCode: ResultCode$WireToProto.resultCode(wire.resultCode),
resultString: wire.resultString,
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamChunkAckCompleteExtensionFields(wire.extensionFields),
};
}
static metadata(wire) {
if (wire instanceof BaseTime) {
return {
oneofKind: 'baseTime',
baseTime: Metadata$WireToProto.baseTime(wire),
};
}
else if (wire instanceof UpstreamOpen) {
return {
oneofKind: 'upstreamOpen',
upstreamOpen: Metadata$WireToProto.upstreamOpen(wire),
};
}
else if (wire instanceof UpstreamAbnormalClose) {
return {
oneofKind: 'upstreamAbnormalClose',
upstreamAbnormalClose: Metadata$WireToProto.upstreamAbnormalClose(wire),
};
}
else if (wire instanceof UpstreamResume) {
return {
oneofKind: 'upstreamResume',
upstreamResume: Metadata$WireToProto.upstreamResume(wire),
};
}
else if (wire instanceof UpstreamNormalClose) {
return {
oneofKind: 'upstreamNormalClose',
upstreamNormalClose: Metadata$WireToProto.upstreamNormalClose(wire),
};
}
else if (wire instanceof DownstreamOpen) {
return {
oneofKind: 'downstreamOpen',
downstreamOpen: Metadata$WireToProto.downstreamOpen(wire),
};
}
else if (wire instanceof DownstreamAbnormalClose) {
return {
oneofKind: 'downstreamAbnormalClose',
downstreamAbnormalClose: Metadata$WireToProto.downstreamAbnormalClose(wire),
};
}
else if (wire instanceof DownstreamResume) {
return {
oneofKind: 'downstreamResume',
downstreamResume: Metadata$WireToProto.downstreamResume(wire),
};
}
else if (wire instanceof DownstreamNormalClose) {
return {
oneofKind: 'downstreamNormalClose',
downstreamNormalClose: Metadata$WireToProto.downstreamNormalClose(wire),
};
}
throw new ISCPMalformedMessageError('Unrecognized metadata.');
}
static downstreamMetadata(wire) {
return {
requestId: wire.requestId,
metadata: WireToProto.metadata(wire.metadata),
sourceNodeId: wire.sourceNodeId,
streamIdAlias: wire.streamIdAlias,
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamMetadataExtensionFields(wire.extensionFields),
};
}
static downstreamMetadataAck(wire) {
return {
requestId: wire.requestId,
resultCode: ResultCode$WireToProto.resultCode(wire.resultCode),
resultString: wire.resultString,
extensionFields: typeof wire.extensionFields === 'undefined'
? undefined
: WireToProto.downstreamMetadataAckExtensionFields(wire.extensionFields),
};
}
}
export class ProtoToWire {
static upstreamInfo(proto) {
return new UpstreamInfo({
sessionId: proto.sessionId,
streamId: UUID$bytesToString(proto.streamId),
sourceNodeId: proto.sourceNodeId,
});
}
static downstreamOpenRequestExtensionFields(_proto) {
return new DownstreamOpenRequestExtensionFields();
}
static downstreamOpenResponseExtensionFields(_proto) {
return new DownstreamOpenResponseExtensionFields();
}
static downstreamResumeRequestExtensionFields(_proto) {
return new DownstreamResumeRequestExtensionFields();
}
static downstreamResumeResponseExtensionFields(_proto) {
return new DownstreamResumeResponseExtensionFields();
}
static downstreamCloseRequestExtensionFields(_proto) {
return new DownstreamCloseRequestExtensionFields();
}
static downstreamCloseResponseExtensionFields(_proto) {
return new DownstreamCloseResponseExtensionFields();
}
static downstreamChunkExtensionFields(_proto) {
return new DownstreamChunkExtensionFields();
}
static downstreamChunkAckExtensionFields(_proto) {
return new DownstreamChunkAckExtensionFields();
}
static downstreamChunkAckCompleteExtensionFields(_proto) {
return new DownstreamChunkAckCompleteExtensionFields();
}
static downstreamMetadataExtensionFields(_proto) {
return new DownstreamMetadataExtensionFields();
}
static downstreamMetadataAckExtensionFields(_proto) {
return new DownstreamMetadataAckExtensionFields();
}
static downstreamChunkResultExtensionFields(_proto) {
return new DownstreamChunkResultExtensionFields();
}
static downstreamChunkResult(proto) {
return new DownstreamChunkResult({
streamIdOfUpstream: UUID$bytesToString(proto.streamIdOfUpstream),
sequenceNumberInUpstream: proto.sequenceNumberInUpstream,
resultCode: ResultCode$ProtoToWire.resultCode(proto.resultCode),
resultString: proto.resultString,
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamChunkResultExtensionFields(proto.extensionFields),
});
}
static downstreamOpenRequest(proto) {
return new DownstreamOpenRequest({
requestId: proto.requestId,
desiredStreamIdAlias: proto.desiredStreamIdAlias,
downstreamFilters: proto.downstreamFilters.map((downstreamFilter) => {
return Common$ProtoToWire.downstreamFilter(downstreamFilter);
}),
expiryInterval: proto.expiryInterval,
dataIdAliases: Object$map({
source: proto.dataIdAliases,
keyConverter: (alias) => Number(alias),
valueConverter: (dataId) => {
return new DataId({
name: dataId.name,
type: dataId.type,
});
},
}),
qos: Common$ProtoToWire.qos(proto.qos),
omitEmptyChunk: proto.omitEmptyChunk,
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamOpenRequestExtensionFields(proto.extensionFields),
});
}
static downstreamOpenResponse(proto) {
return new DownstreamOpenResponse({
requestId: proto.requestId,
assignedStreamId: UUID$bytesToString(proto.assignedStreamId),
serverTime: proto.serverTime,
resultCode: ResultCode$ProtoToWire.resultCode(proto.resultCode),
resultString: proto.resultString,
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamOpenResponseExtensionFields(proto.extensionFields),
});
}
static downstreamResumeRequest(proto) {
return new DownstreamResumeRequest({
requestId: proto.requestId,
streamId: UUID$bytesToString(proto.streamId),
desiredStreamIdAlias: proto.desiredStreamIdAlias,
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamResumeRequestExtensionFields(proto.extensionFields),
});
}
static downstreamResumeResponse(proto) {
return new DownstreamResumeResponse({
requestId: proto.requestId,
resultCode: ResultCode$ProtoToWire.resultCode(proto.resultCode),
resultString: proto.resultString,
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamResumeResponseExtensionFields(proto.extensionFields),
});
}
static downstreamCloseRequest(proto) {
return new DownstreamCloseRequest({
requestId: proto.requestId,
streamId: UUID$bytesToString(proto.streamId),
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamCloseRequestExtensionFields(proto.extensionFields),
});
}
static downstreamCloseResponse(proto) {
return new DownstreamCloseResponse({
requestId: proto.requestId,
resultCode: ResultCode$ProtoToWire.resultCode(proto.resultCode),
resultString: proto.resultString,
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamCloseResponseExtensionFields(proto.extensionFields),
});
}
static upstreamOrAlias(proto) {
switch (proto.oneofKind) {
case 'upstreamInfo':
return ProtoToWire.upstreamInfo(proto.upstreamInfo);
case 'upstreamAlias':
return proto.upstreamAlias;
default:
throw new ISCPMalformedMessageError('Unrecognized upstreamOrAlias.');
}
}
static downstreamChunk(proto) {
if (typeof proto.streamChunk === 'undefined') {
throw new ISCPMalformedMessageError('Unrecognized DownstreamChunk.streamChunk.');
}
return new DownstreamChunk({
streamIdAlias: proto.streamIdAlias,
upstreamOrAlias: ProtoToWire.upstreamOrAlias(proto.upstreamOrAlias),
streamChunk: Common$ProtoToWire.streamChunk(proto.streamChunk),
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamChunkExtensionFields(proto.extensionFields),
});
}
static downstreamChunkAck(proto) {
return new DownstreamChunkAck({
streamIdAlias: proto.streamIdAlias,
ackId: proto.ackId,
results: proto.results.map((result) => ProtoToWire.downstreamChunkResult(result)),
upstreamAliases: Object$map({
source: proto.upstreamAliases,
keyConverter: (key) => Number(key),
valueConverter: (value) => ProtoToWire.upstreamInfo(value),
}),
dataIdAliases: Object$map({
source: proto.dataIdAliases,
keyConverter: (key) => Number(key),
valueConverter: (value) => Common$ProtoToWire.dataId(value),
}),
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamChunkAckExtensionFields(proto.extensionFields),
});
}
static downstreamChunkAckComplete(proto) {
return new DownstreamChunkAckComplete({
streamIdAlias: proto.streamIdAlias,
ackId: proto.ackId,
resultCode: ResultCode$ProtoToWire.resultCode(proto.resultCode),
resultString: proto.resultString,
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamChunkAckCompleteExtensionFields(proto.extensionFields),
});
}
static metadata(proto) {
switch (proto.oneofKind) {
case 'baseTime':
return Metadata$ProtoToWire.baseTime(proto.baseTime);
case 'upstreamOpen':
return Metadata$ProtoToWire.upstreamOpen(proto.upstreamOpen);
case 'upstreamAbnormalClose':
return Metadata$ProtoToWire.upstreamAbnormalClose(proto.upstreamAbnormalClose);
case 'upstreamResume':
return Metadata$ProtoToWire.upstreamResume(proto.upstreamResume);
case 'upstreamNormalClose':
return Metadata$ProtoToWire.upstreamNormalClose(proto.upstreamNormalClose);
case 'downstreamOpen':
return Metadata$ProtoToWire.downstreamOpen(proto.downstreamOpen);
case 'downstreamAbnormalClose':
return Metadata$ProtoToWire.downstreamAbnormalClose(proto.downstreamAbnormalClose);
case 'downstreamResume':
return Metadata$ProtoToWire.downstreamResume(proto.downstreamResume);
case 'downstreamNormalClose':
return Metadata$ProtoToWire.downstreamNormalClose(proto.downstreamNormalClose);
default:
throw new ISCPMalformedMessageError('Unrecognized metadata.');
}
}
static downstreamMetadata(proto) {
return new DownstreamMetadata({
requestId: proto.requestId,
metadata: ProtoToWire.metadata(proto.metadata),
sourceNodeId: proto.sourceNodeId,
streamIdAlias: proto.streamIdAlias,
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamMetadataExtensionFields(proto.extensionFields),
});
}
static downstreamMetadataAck(proto) {
return new DownstreamMetadataAck({
requestId: proto.requestId,
resultCode: ResultCode$ProtoToWire.resultCode(proto.resultCode),
resultString: proto.resultString,
extensionFields: typeof proto.extensionFields === 'undefined'
? undefined
: ProtoToWire.downstreamMetadataAckExtensionFields(proto.extensionFields),
});
}
}
//# sourceMappingURL=downstream.js.map