Skip to content
Sailhouse
GitHubDiscord

TypeScript / JavaScript

Installing

The TypeScript SDK can be installed via your favourite package manager, e.g. pnpm

Terminal window
pnpm add @sailhouse/client

Basic Usage

Importing and initialising

The SailhouseClient class from the package has everything we need to get started.

Provided you have generated a token, you can create a client from the class.

import { SailhouseClient } from '@sailhouse/client';
const client = new SailhouseClient(process.env.SAILHOUSE_TOKEN);
// lets go πŸŽ‰

Sending an event

The client has an async publish method for sending data to a given topic.

await client.publish("some-topic", {
text: "example contents",
obj: {
key: "value",
},
});

The second argument can be any object. Ideally, this should just be a map, as the contents are stringified via JSON.stringify(...) and we don’t want that to get messy.

Recieving events from a pull subscription

The client has a getEvents method for pull subscriptions.

const { events } = await client.getEvents<Message>(
"awesome-example",
"awesome-pull"
);
await Promise.all(events.map(async (event) => {
// Do something with the event πŸ€”
await event.ack();
}));