UNPKG

@digitalasset/daml-ledger

Version:
39 lines 1.61 kB
"use strict"; // 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