import CodeBlock from '@theme/CodeBlock';
import LoadBalancerHealthChecks from '../../../_admonitions/_load_balancer_health_checks.md';
import ClientBuilder from '../../../_partials/examples/01_get_info/_client_builder.md';
import get_info from '!!raw-loader!./../../../../../bindings/nodejs/examples/01_get_info.js';
import b_get_info from '!!raw-loader!./../../../../../bindings/nodejs/examples/01b_get_info.js';
import GetInfoOutput from '../../../_partials/examples/01_get_info/outputs/camelCase.md'


<CodeBlock className="language-javascript">
    {get_info}
</CodeBlock>

**Output example** of the `getInfo()` function of the `Client` instance:

<GetInfoOutput/>

<LoadBalancerHealthChecks/>

<ClientBuilder/>

The most common ones are:

* `.network(str)`: Can be either `devnet` or `mainnet`. It instructs
the library whether to automatically select devnet nodes or mainnet nodes.
* `.node(url)`: Specify address of actual running IOTA node that should be used
to communicate with in the format `https://node:port`). For example: `https://api.lb-0.h.chrysalis-devnet.iota.cafe:443`.
* `.nodePoolUrls(urls)`: The library also supports managing a pool of
nodes. You can provide a list of nodes and the library manages the access to them automatically by selecting them based
on their sync status. If you provide `.nodePoolUrls(urls)`, then the library periodically will periodically check whether node is in sync or
not by calling `.nodeSyncInterval(interval)`.
* `.localPow(bool)`: If `.localPow (True)` a Proof-of-work will be done
locally and not remotely.
* `.disableNodeSync()`: When called, the library will use nodes that
are **not** in sync with network. This parameter is usually useful if you would like to interact with a local test node
that is not fully synced. **This parameter should not be used in production**.

The following example uses additional initialization chaining calls, such as leveraging a custom node:

<CodeBlock className="language-javascript">
    {b_get_info}
</CodeBlock>