LLKennedy/httpgrpc

View on GitHub
internal/testservice/client/src/feed.ts

Summary

Maintainability
A
1 hr
Test Coverage
import { FeedData, FeedResponse, FeedType } from "./service";
import { ClientStream, MercuryWebSocket } from "@llkennedy/mercury"
import { base64 } from "rfc4648";

export async function feed() {
    let ws = new MercuryWebSocket<FeedData, FeedResponse>("ws://127.0.0.1:4848/Feed", FeedResponse.Parse, "FeedSocket", console);
    await ws.init()
    let stream = new ClientStream(ws);
    let data1 = new FeedData();
    data1.data_type = 998;
    data1.id = "totally an id";
    data1.raw_data = base64.parse("VGVzdCBEYXRh");
    data1.type = FeedType.FEED_TYPE_BLUE;
    let data2 = new FeedData();
    data2.data_type = 123;
    data2.id = "totally an id 2";
    data2.raw_data = base64.parse("VGVzdCBEYXRh");
    data2.type = FeedType.FEED_TYPE_RED;
    let data3 = new FeedData();
    data3.data_type = 654;
    data3.id = "totally an id 3";
    data3.raw_data = base64.parse("VGVzdCBEYXRh");
    await stream.Send(data1);
    await stream.Send(data2);
    await stream.Send(data3);
    try {
        let response = await stream.CloseAndRecv();
        console.log(JSON.stringify(response))
    } catch (err) {
        if (err instanceof Error) {
            console.error(`Caught error: ${err.message}`);
            console.debug(`Error trace: ${err.stack}`);
        } else {
            throw new Error('caught error was not error? ' + err);
        }
    }
}

export default feed;