UNPKG

@digitalasset/daml-ledger

Version:
45 lines 2.73 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.NodeJsCommandCompletionClient = void 0; const command_completion_service_pb_1 = require("../generated/com/daml/ledger/api/v1/command_completion_service_pb"); const ClientReadableObjectStream_1 = require("../call/ClientReadableObjectStream"); const CompletionStreamRequestValidation_1 = require("../validation/CompletionStreamRequestValidation"); const Callback_1 = require("../util/Callback"); const ClientCancellableCall_1 = require("../call/ClientCancellableCall"); const CompletionEndResponseCodec_1 = require("../codec/CompletionEndResponseCodec"); const CompletionStreamResponseCodec_1 = require("../codec/CompletionStreamResponseCodec"); const Validation_1 = require("../validation/Validation"); const CompletionStreamRequestCodec_1 = require("../codec/CompletionStreamRequestCodec"); class NodeJsCommandCompletionClient { constructor(ledgerId, client, reporter) { this.completionEndPromise = Callback_1.promisify(this.completionEndCallback); this.completionEndRequest = new command_completion_service_pb_1.CompletionEndRequest(); this.completionEndRequest.setLedgerId(ledgerId); this.ledgerId = ledgerId; this.client = client; this.reporter = reporter; } completionStream(requestObject) { const tree = CompletionStreamRequestValidation_1.CompletionStreamRequestValidation.validate(requestObject); if (Validation_1.isValid(tree)) { const request = CompletionStreamRequestCodec_1.CompletionStreamRequestCodec.serialize(requestObject); request.setLedgerId(this.ledgerId); return ClientReadableObjectStream_1.ClientReadableObjectStream.from(this.client.completionStream(request), CompletionStreamResponseCodec_1.CompletionStreamResponseCodec); } else { return ClientReadableObjectStream_1.ClientReadableObjectStream.from(new Error(this.reporter.render(tree))); } } completionEndCallback(callback) { return ClientCancellableCall_1.ClientCancellableCall.accept(this.client.completionEnd(this.completionEndRequest, (error, response) => { Callback_1.forward(callback, error, response, CompletionEndResponseCodec_1.CompletionEndResponseCodec.deserialize); })); } completionEnd(callback) { return callback ? this.completionEndCallback(callback) : this.completionEndPromise(); } } exports.NodeJsCommandCompletionClient = NodeJsCommandCompletionClient; //# sourceMappingURL=NodeJsCommandCompletionClient.js.map