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