Skip to Content
Client SDKCommands

Client: Commands

Use client.command(...) to send a request to the server and receive a response. This is a core mechanism for client-server interaction.

Sending commands

const = await .("echo", "Hello!"); .(); // "echo: Hello!" const = await .("math:add", { : 5, : 3 }); .(); // 8

The method returns a Promise that resolves with the response or rejects if the server throws or times out.

Error handling

If the server throws an error or a guard fails, the client receives it:

try { const = await .("divide", { : 10, : 0 }); } catch () { .(.message); // e.g. "Cannot divide by zero" .(.code); // e.g. "ESERVER" or your custom code }

You can inspect .message, .code, and .name on the error object.

Timeouts

The third argument to client.command(...) is a timeout in milliseconds (not an object):

await .("slow-op", {}, 5000); // 5s timeout

If the command takes too long to respond, it rejects with a CodeError:

{ message: "Command timed out after 5000ms.", code: "ETIMEOUT", name: "TimeoutError" }

Best practices

  • Wrap command calls in try/catch
  • Use descriptive command names like "user:update" or "chat:send"
  • Handle command timeouts explicitly
  • Validate inputs on the client before sending
Last updated on
© 2025