@pokt-network/pocket-js
Version:
Pocket-js core package with the main functionalities to interact with the Pocket Network.
80 lines • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryNodesResponse = void 0;
var node_1 = require("../node");
/**
*
*
* @class QueryNodesResponse
*/
var QueryNodesResponse = /** @class */ (function () {
/**
* Relay Response.
* @constructor
* @param {Node[]} nodes - Node object array.
* @param {number} page - Current page.
* @param {number} totalPages - Total amount of pages.
*/
function QueryNodesResponse(nodes, page, totalPages) {
this.nodes = nodes;
this.page = page;
this.totalPages = totalPages;
if (!this.isValid()) {
throw new TypeError("Invalid QueryNodesResponse properties.");
}
}
/**
*
* Creates a QueryNodesResponse object using a JSON string
* @param {String} json - JSON string.
* @returns {QueryNodesResponse} - QueryNodesResponse object.
* @memberof QueryNodesResponse
*/
QueryNodesResponse.fromJSON = function (json) {
try {
var jsonObject = JSON.parse(json);
var nodes_1 = [];
if (Array.isArray(jsonObject.result)) {
jsonObject.result.forEach(function (nodeJSON) {
var node = node_1.Node.fromJSON(JSON.stringify(nodeJSON));
nodes_1.push(node);
});
}
return new QueryNodesResponse(nodes_1, jsonObject.page, jsonObject.total_pages);
}
catch (error) {
throw error;
}
};
/**
*
* Creates a JSON object with the QueryNodesResponse properties
* @returns {JSON} - JSON Object.
* @memberof QueryNodesResponse
*/
QueryNodesResponse.prototype.toJSON = function () {
var nodeListJSON = [];
this.nodes.forEach(function (node) {
nodeListJSON.push(node.toJSON());
});
return {
result: nodeListJSON,
page: this.page,
total_pages: this.totalPages
};
};
/**
*
* Check if the QueryNodesResponse object is valid
* @returns {boolean} - True or false.
* @memberof QueryNodesResponse
*/
QueryNodesResponse.prototype.isValid = function () {
return this.nodes !== undefined &&
this.page >= 0 &&
this.totalPages >= 0;
};
return QueryNodesResponse;
}());
exports.QueryNodesResponse = QueryNodesResponse;
//# sourceMappingURL=query-nodes-response.js.map