Skip to content

Node.js Node.js

You can use the following .npmrc to install the dependencies from the buf.build registry.

toml
@buf:registry=https://buf.build/gen/npm/v1/

or using pnpm:

bash
pnpm config set @buf:registry https://buf.build/gen/npm/v1/

To install dependencies:

bash
pnpm add @buf/minekube_gate.connectrpc_es@latest
bash
bun add @buf/minekube_gate.connectrpc_es@latest
bash
npm install @buf/minekube_gate.connectrpc_es@latest
bash
yarn add @buf/minekube_gate.connectrpc_es@latest

Refer to the ConnectRPC documentation for more information on how to use ConnectRPC with TypeScript on server side.

Browser support

To use the Gate API in the browser, check out the Web documentation.

ts
import { createClient } from '@connectrpc/connect';
import { createConnectTransport } from '@connectrpc/connect-node';
import { GateService } from '@buf/minekube_gate.connectrpc_es/minekube/gate/v1/gate_service_connect.js';

const transport = createConnectTransport({
  httpVersion: '1.1',
  baseUrl: 'http://localhost:8080',
});

async function main() {
  const client = createClient(GateService, transport);
  const res = await client.listServers({});
  console.log(JSON.stringify(res.servers, null, 2));
}
void main();

WARNING

Note that we had to append .js to the import path in line 3 due Node.js requiring .js for CommonJS modules, other than in Bun.

ts
import { GateService } from '@buf/minekube_gate.connectrpc_es/minekube/gate/v1/gate_service_connect.js';

Sample project

This sample project is located in the docs/developers/api/typescript/node directory.

To install dependencies:

bash
pnpm install

To run:

bash
node --experimental-strip-types index.ts
[
  {
    "name": "server1",
    "address": "localhost:25566",
    "players": 0
  },
  {
    "name": "server2",
    "address": "localhost:25567",
    "players": 0
  },
  {
    "name": "server3",
    "address": "localhost:25568",
    "players": 0
  },
  {
    "name": "server4",
    "address": "localhost:25569",
    "players": 0
  }
]

This project was created using pnpm init in pnpm v9.5.0. pnpm is a fast, disk space efficient package manager.

Released under the Apache 2.0 License. (web version: 037ca6cf)