1.0.0-beta.7
The WebSocket graphql-transport-ws sub-protocol implementation
Attributes
Includes Deno configuration
Repository
Current version released
3 years ago
Dependencies
esm.sh
graphql-transport-ws
The WebSocket graphql-transport-ws sub-protocol implementation.
Usage
core
createGraphQLTransportWs
- Create API that handles sending and receiving messages for thegraphql-transport-ws
sub-protocol.createClient
- Create client-sidegraphql-transport-ws
sub-protocol compliant API.createServer
- Create server-sidegraphql-transport-ws
sub-protocol compliant API.
utils
parseMessage
- Parse the value asgraphql-transport-ws
message data.createWebSocket
- CreateWebSocket
instance withgraphql-transport-ws
sub-protocol.PROTOCOL
- Sub-protocolMessageType
- Definition ofgraphql-transport-ws
message type.Status
- Definition ofgraphql-transport-ws
WebSocket private status code.STATUS_TEXT
- A record of all the private status codes text.
Ping and Pong
import { createGraphQLTransportWs } from "https://deno.land/x/graphql_transport_ws@$VERSION/mod.ts";
const graphqlTransportWs = createGraphQLTransportWs("<ENDPOINT>");
graphqlTransportWs.addEventListener("pong", (ev) => {
console.log(ev.data);
});
graphqlTransportWs.ping();
graphqlTransportWs.addEventListener("ping", () => {
graphqlTransportWs.pong();
});
Subscribe subscription
import { createGraphQLTransportWs } from "https://deno.land/x/graphql_transport_ws@$VERSION/mod.ts";
const graphqlTransportWs = createGraphQLTransportWs("<ENDPOINT>");
graphqlTransportWs.addEventListener("connectionack", (ev) => {
console.log(ev.data);
});
graphqlTransportWs.addEventListener("next", (ev) => {
console.log(ev.data.id, ev.data.payload);
});
graphqlTransportWs.connectionInit();
graphqlTransportWs.subscribe({
query: `subscription { hello }`,
});
Parse message
import {
MessageType,
parseMessage,
} from "https://deno.land/x/graphql_transport_ws@$VERSION/mod.ts";
import { assertEquals } from "https://deno.land/std@$VERSION/testing/asserts.ts";
const ev = new MessageEvent("message", {
data: JSON.stringify({
type: "pong",
}),
});
const result = parseMessage(ev.data);
assertEquals(result[0], { "type": MessageType.Pong });
assertEquals(result[1], undefined);
License
Copyright © 2022-present TomokiMiyauci.
Released under the MIT license
graphql-transport-ws
: enisdenjo