@digitalasset/daml-ledger
Version:
DAML Ledger API Node.js bindings
47 lines • 2.39 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.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