@digitalasset/daml-ledger
Version:
DAML Ledger API Node.js bindings
39 lines • 1.93 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.NodeJsCommandSubmissionClient = void 0;
const SubmitRequestValidation_1 = require("../validation/SubmitRequestValidation");
const ClientCancellableCall_1 = require("../call/ClientCancellableCall");
const Callback_1 = require("../util/Callback");
const Validation_1 = require("../validation/Validation");
const SubmitRequestCodec_1 = require("../codec/SubmitRequestCodec");
class NodeJsCommandSubmissionClient {
constructor(ledgerId, client, reporter) {
this.submitPromise = Callback_1.promisify(this.submitCallback);
this.ledgerId = ledgerId;
this.client = client;
this.reporter = reporter;
}
submitCallback(requestObject, callback) {
const tree = SubmitRequestValidation_1.SubmitRequestValidation.validate(requestObject);
if (Validation_1.isValid(tree)) {
const request = SubmitRequestCodec_1.SubmitRequestCodec.serialize(requestObject);
if (request.hasCommands()) {
request.getCommands().setLedgerId(this.ledgerId);
}
return ClientCancellableCall_1.ClientCancellableCall.accept(this.client.submit(request, (error, _) => {
Callback_1.forwardVoidResponse(callback, error);
}));
}
else {
setImmediate(() => callback(new Error(this.reporter.render(tree))));
return ClientCancellableCall_1.ClientCancellableCall.rejected;
}
}
submit(requestObject, callback) {
return callback ? this.submitCallback(requestObject, callback) : this.submitPromise(requestObject);
}
}
exports.NodeJsCommandSubmissionClient = NodeJsCommandSubmissionClient;
//# sourceMappingURL=NodeJsCommandSubmissionClient.js.map