@emeraldpay/api-node
Version:
Node client for Emerald gRPC APIs
60 lines • 3.33 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TokenClient = void 0;
const api_1 = require("@emeraldpay/api");
const channel_1 = require("../channel");
const token_grpc_pb_1 = require("../generated/token_grpc_pb");
const Factory_1 = require("./Factory");
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { version: clientVersion } = require('../../package.json');
class TokenClient {
constructor(address, credentials, agents, retries = 3) {
this.convert = new api_1.token.Convert(Factory_1.classFactory);
const agent = [...agents, `emerald-client-node/${clientVersion}`].join(' ');
this.client = new token_grpc_pb_1.TokenClient(address, credentials, { 'grpc.primary_user_agent': agent });
this.channel = new channel_1.NativeChannel(this.client);
this.credentials = credentials;
this.retries = retries;
}
setConnectionListener(listener) {
this.channel.setListener(listener);
}
getTokens(request) {
const protoRequest = this.convert.addressTokenRequest(request);
const mapper = this.convert.addressToken();
const call = (0, channel_1.callSingle)(this.client.getTokens.bind(this.client), mapper);
return (0, api_1.publishToPromise)((0, api_1.readOnce)(this.channel, call, protoRequest, this.retries));
}
subscribeTokens(request) {
const protoRequest = this.convert.addressTokenRequest(request);
const mapper = this.convert.addressToken();
const call = (0, channel_1.callStream)(this.client.subscribeTokens.bind(this.client), mapper);
return (0, api_1.alwaysRetry)(this.channel, call, protoRequest, this.retries);
}
getAllowanceTokens(request) {
const protoRequest = this.convert.addressAllowanceRequest(request);
const mapper = this.convert.addressAllowanceToken();
const call = (0, channel_1.callSingle)(this.client.getAllowanceTokens.bind(this.client), mapper);
return (0, api_1.publishToPromise)((0, api_1.readOnce)(this.channel, call, protoRequest, this.retries));
}
subscribeAllowanceTokens(request) {
const protoRequest = this.convert.addressAllowanceRequest(request);
const mapper = this.convert.addressAllowanceToken();
const call = (0, channel_1.callStream)(this.client.subscribeAllowanceTokens.bind(this.client), mapper);
return (0, api_1.alwaysRetry)(this.channel, call, protoRequest, this.retries);
}
getAllowanceAmounts(request) {
const protoRequest = this.convert.addressAllowanceRequest(request);
const mapper = this.convert.addressAllowanceAmount();
const call = (0, channel_1.callStream)(this.client.getAllowanceAmounts.bind(this.client), mapper);
return (0, api_1.readOnce)(this.channel, call, protoRequest, this.retries);
}
subscribeAllowanceAmounts(request) {
const protoRequest = this.convert.addressAllowanceRequest(request);
const mapper = this.convert.addressAllowanceAmount();
const call = (0, channel_1.callStream)(this.client.subscribeAllowanceAmounts.bind(this.client), mapper);
return (0, api_1.alwaysRetry)(this.channel, call, protoRequest, this.retries);
}
}
exports.TokenClient = TokenClient;
//# sourceMappingURL=TokenClient.js.map