/
streamsPreview.ts
27 lines (24 loc) · 1.06 KB
/
streamsPreview.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { ProximaStreamClient, StreamRegistryClient, Offset } from "../build";
import { strict as assert } from "assert";
export function decodeJson(binary: Uint8Array): any {
const buffer = Buffer.from(binary);
return JSON.parse(buffer.toString("utf8"));
}
async function main() {
const client = new ProximaStreamClient();
const registryClient = new StreamRegistryClient();
const streams = await registryClient.getStreams();
await Promise.all(streams.map(async stream => {
const encoding = stream.metadata.labels["encoding"];
if (encoding != "json") {
console.log(`Stream ${stream.name} (${stream.metadata.description}) has unknown encoding: ${encoding}`);
return;
}
const events = await client.fetchEvents(stream.name, Offset.zero, 1, "next");
assert(events.length == 1);
const event = events.pop()!;
console.log(`Stream: ${stream.name} (${stream.metadata.description})`);
console.log(decodeJson(event.payload));
}));
}
main().catch(err => console.error(err));