@airgap/serializer
Version:
The @airgap/serializer provides serializers used in AirGap applications.
51 lines • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Payload = void 0;
var interfaces_1 = require("./interfaces");
var message_1 = require("./message");
var serializer_1 = require("./serializer");
var Payload = /** @class */ (function () {
function Payload(messages) {
this.messages = messages;
}
Payload.fromDecoded = function (object) {
return new Payload(object);
};
// public static fromEncoded(encoded: MessageDefinitionArray[], serializer: SerializerV3 = SerializerV3.getInstance()): Payload {
// const messages: IACMessageDefinitionObjectV3[] = encoded.map((message) => Message.fromEncoded(message, serializer).asJson())
// return new Payload(messages)
// }
Payload.fromEncoded = function (encoded, serializer) {
if (serializer === void 0) { serializer = serializer_1.SerializerV3.getInstance(); }
var messages = [];
var errors = [];
for (var _i = 0, encoded_1 = encoded; _i < encoded_1.length; _i++) {
var message = encoded_1[_i];
try {
var result = message_1.Message.fromEncoded(message, serializer);
if (result.ok) {
messages.push((0, interfaces_1.success)(result.value.asJson()));
}
else {
errors.push((0, interfaces_1.failure)(result.error));
}
}
catch (error) {
errors.push((0, interfaces_1.failure)(error));
}
}
return { payload: new Payload(messages), skippedPayload: errors };
};
Payload.prototype.asJson = function () {
return this.messages;
};
Payload.prototype.asArray = function (serializer) {
if (serializer === void 0) { serializer = serializer_1.SerializerV3.getInstance(); }
return this.messages.map(function (message) {
return message.ok ? (0, interfaces_1.success)(message_1.Message.fromDecoded(message.value).asArray(serializer)) : (0, interfaces_1.failure)(message.error);
});
};
return Payload;
}());
exports.Payload = Payload;
//# sourceMappingURL=payload.js.map