@digitalasset/daml-ledger
Version:
DAML Ledger API Node.js bindings
39 lines • 1.61 kB
JavaScript
;
// Copyright (c) 2021 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.RecordCodec = void 0;
const ValueCodec_1 = require("./ValueCodec");
const IdentifierCodec_1 = require("./IdentifierCodec");
const value_pb_1 = require("../generated/com/daml/ledger/api/v1/value_pb");
exports.RecordCodec = {
deserialize(record) {
let fieldIndex = 0; // used for records returned in non-verbose mode
const fields = {};
record.getFieldsList().forEach((field) => {
fields[field.getLabel() || fieldIndex++] = ValueCodec_1.ValueCodec.deserialize(field.getValue());
});
const result = { fields: fields };
if (record.hasRecordId()) {
result.recordId = IdentifierCodec_1.IdentifierCodec.deserialize(record.getRecordId());
}
return result;
},
serialize(record) {
const result = new value_pb_1.Record();
if (record.recordId) {
result.setRecordId(IdentifierCodec_1.IdentifierCodec.serialize(record.recordId));
}
const list = [];
Object.keys(record.fields).forEach((label) => {
const value = ValueCodec_1.ValueCodec.serialize(record.fields[label]);
const field = new value_pb_1.RecordField();
field.setLabel(label);
field.setValue(value);
list.push(field);
});
result.setFieldsList(list);
return result;
}
};
//# sourceMappingURL=RecordCodec.js.map