@injectivelabs/exchange-api
Version:
Injective Exchange API client with generated gRPC bindings.
190 lines (175 loc) • 5.13 kB
JavaScript
// package: injective_meta_rpc
// file: injective_meta_rpc.proto
var injective_meta_rpc_pb = require("./injective_meta_rpc_pb");
var grpc = require("@improbable-eng/grpc-web").grpc;
var InjectiveMetaRPC = (function () {
function InjectiveMetaRPC() {}
InjectiveMetaRPC.serviceName = "injective_meta_rpc.InjectiveMetaRPC";
return InjectiveMetaRPC;
}());
InjectiveMetaRPC.Ping = {
methodName: "Ping",
service: InjectiveMetaRPC,
requestStream: false,
responseStream: false,
requestType: injective_meta_rpc_pb.PingRequest,
responseType: injective_meta_rpc_pb.PingResponse
};
InjectiveMetaRPC.Version = {
methodName: "Version",
service: InjectiveMetaRPC,
requestStream: false,
responseStream: false,
requestType: injective_meta_rpc_pb.VersionRequest,
responseType: injective_meta_rpc_pb.VersionResponse
};
InjectiveMetaRPC.Info = {
methodName: "Info",
service: InjectiveMetaRPC,
requestStream: false,
responseStream: false,
requestType: injective_meta_rpc_pb.InfoRequest,
responseType: injective_meta_rpc_pb.InfoResponse
};
InjectiveMetaRPC.StreamKeepalive = {
methodName: "StreamKeepalive",
service: InjectiveMetaRPC,
requestStream: false,
responseStream: true,
requestType: injective_meta_rpc_pb.StreamKeepaliveRequest,
responseType: injective_meta_rpc_pb.StreamKeepaliveResponse
};
exports.InjectiveMetaRPC = InjectiveMetaRPC;
function InjectiveMetaRPCClient(serviceHost, options) {
this.serviceHost = serviceHost;
this.options = options || {};
}
InjectiveMetaRPCClient.prototype.ping = function ping(requestMessage, metadata, callback) {
if (arguments.length === 2) {
callback = arguments[1];
}
var client = grpc.unary(InjectiveMetaRPC.Ping, {
request: requestMessage,
host: this.serviceHost,
metadata: metadata,
transport: this.options.transport,
debug: this.options.debug,
onEnd: function (response) {
if (callback) {
if (response.status !== grpc.Code.OK) {
var err = new Error(response.statusMessage);
err.code = response.status;
err.metadata = response.trailers;
callback(err, null);
} else {
callback(null, response.message);
}
}
}
});
return {
cancel: function () {
callback = null;
client.close();
}
};
};
InjectiveMetaRPCClient.prototype.version = function version(requestMessage, metadata, callback) {
if (arguments.length === 2) {
callback = arguments[1];
}
var client = grpc.unary(InjectiveMetaRPC.Version, {
request: requestMessage,
host: this.serviceHost,
metadata: metadata,
transport: this.options.transport,
debug: this.options.debug,
onEnd: function (response) {
if (callback) {
if (response.status !== grpc.Code.OK) {
var err = new Error(response.statusMessage);
err.code = response.status;
err.metadata = response.trailers;
callback(err, null);
} else {
callback(null, response.message);
}
}
}
});
return {
cancel: function () {
callback = null;
client.close();
}
};
};
InjectiveMetaRPCClient.prototype.info = function info(requestMessage, metadata, callback) {
if (arguments.length === 2) {
callback = arguments[1];
}
var client = grpc.unary(InjectiveMetaRPC.Info, {
request: requestMessage,
host: this.serviceHost,
metadata: metadata,
transport: this.options.transport,
debug: this.options.debug,
onEnd: function (response) {
if (callback) {
if (response.status !== grpc.Code.OK) {
var err = new Error(response.statusMessage);
err.code = response.status;
err.metadata = response.trailers;
callback(err, null);
} else {
callback(null, response.message);
}
}
}
});
return {
cancel: function () {
callback = null;
client.close();
}
};
};
InjectiveMetaRPCClient.prototype.streamKeepalive = function streamKeepalive(requestMessage, metadata) {
var listeners = {
data: [],
end: [],
status: []
};
var client = grpc.invoke(InjectiveMetaRPC.StreamKeepalive, {
request: requestMessage,
host: this.serviceHost,
metadata: metadata,
transport: this.options.transport,
debug: this.options.debug,
onMessage: function (responseMessage) {
listeners.data.forEach(function (handler) {
handler(responseMessage);
});
},
onEnd: function (status, statusMessage, trailers) {
listeners.status.forEach(function (handler) {
handler({ code: status, details: statusMessage, metadata: trailers });
});
listeners.end.forEach(function (handler) {
handler({ code: status, details: statusMessage, metadata: trailers });
});
listeners = null;
}
});
return {
on: function (type, handler) {
listeners[type].push(handler);
return this;
},
cancel: function () {
listeners = null;
client.close();
}
};
};
exports.InjectiveMetaRPCClient = InjectiveMetaRPCClient;