UNPKG

@digitalasset/daml-ledger

Version:
47 lines 2.39 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.NodeJsTimeClient = void 0; const SetTimeRequestValidation_1 = require("../validation/SetTimeRequestValidation"); const ClientCancellableCall_1 = require("../call/ClientCancellableCall"); const Callback_1 = require("../util/Callback"); const ClientReadableObjectStream_1 = require("../call/ClientReadableObjectStream"); const Validation_1 = require("../validation/Validation"); const GetTimeResponseCodec_1 = require("../codec/GetTimeResponseCodec"); const SetTimeRequestCodec_1 = require("../codec/SetTimeRequestCodec"); const time_service_pb_1 = require("../generated/com/daml/ledger/api/v1/testing/time_service_pb"); class NodeJsTimeClient { constructor(ledgerId, client, reporter) { this.setTimePromise = Callback_1.promisify(this.setTimeCallback); this.ledgerId = ledgerId; this.request = new time_service_pb_1.GetTimeRequest(); this.request.setLedgerId(this.ledgerId); this.client = client; this.reporter = reporter; } getTime() { return ClientReadableObjectStream_1.ClientReadableObjectStream.from(this.client.getTime(this.request), GetTimeResponseCodec_1.GetTimeResponseCodec); } setTimeCallback(requestObject, callback) { const tree = SetTimeRequestValidation_1.SetTimeRequestValidation.validate(requestObject); if (Validation_1.isValid(tree)) { const request = SetTimeRequestCodec_1.SetTimeRequestCodec.serialize(requestObject); request.setLedgerId(this.ledgerId); return ClientCancellableCall_1.ClientCancellableCall.accept(this.client.setTime(request, (error, _) => { Callback_1.forwardVoidResponse(callback, error); })); } else { setImmediate(() => { callback(new Error(this.reporter.render(tree))); }); return ClientCancellableCall_1.ClientCancellableCall.rejected; } } setTime(requestObject, callback) { return callback ? this.setTimeCallback(requestObject, callback) : this.setTimePromise(requestObject); } } exports.NodeJsTimeClient = NodeJsTimeClient; //# sourceMappingURL=NodeJsTimeClient.js.map