From a23e517c922073dc050e51f399abd0528cba21cc Mon Sep 17 00:00:00 2001
From: QcFe <10742159+QcFe@users.noreply.github.com>
Date: Wed, 20 Nov 2024 19:00:29 +0100
Subject: [PATCH] try to fix websocket, remove playground
---
qlkube/package.json | 1 -
qlkube/src/index.js | 35 +++++++++++++++---------
qlkube/yarn.lock | 66 +++++++++++++++++++--------------------------
3 files changed, 51 insertions(+), 51 deletions(-)
diff --git a/qlkube/package.json b/qlkube/package.json
index f4a3acb44..13f8daba4 100644
--- a/qlkube/package.json
+++ b/qlkube/package.json
@@ -30,7 +30,6 @@
},
"dependencies": {
"@apollo/server": "^4.10.4",
- "@apollo/server-plugin-landing-page-graphql-playground": "^4.0.1",
"@graphql-tools/schema": "10.0.4",
"@graphql-tools/stitch": "^9.2.9",
"@graphql-tools/wrap": "10.0.5",
diff --git a/qlkube/src/index.js b/qlkube/src/index.js
index 87ffd8055..f54fe4dc1 100644
--- a/qlkube/src/index.js
+++ b/qlkube/src/index.js
@@ -8,9 +8,6 @@ const dotenv = require('dotenv');
const express = require('express');
const fs = require('fs').promises;
const { printSchema } = require('graphql');
-const {
- ApolloServerPluginLandingPageGraphQLPlayground,
-} = require('@apollo/server-plugin-landing-page-graphql-playground');
const { createServer } = require('http');
const { WebSocketServer } = require('ws');
const bodyParser = require('body-parser');
@@ -92,15 +89,22 @@ async function main() {
app.get('/healthz', (req, res) => {
res.sendStatus(200);
});
+ app.get('/', (req, res) => {
+ res.setHeader('content-type', 'text/html');
+ res.send(`
CrownLabs GraphQL Playground
+
+
+
+
+ `);
+ });
const httpServer = createServer(app);
const server = new ApolloServer({
schema,
- playground: true,
plugins: [
ApolloServerPluginDrainHttpServer({ httpServer: httpServer }),
- ApolloServerPluginLandingPageGraphQLPlayground(),
{
async serverWillStart() {
return {
@@ -157,6 +161,19 @@ async function main() {
},
});
+ // Creating the WebSocket server
+ const wsServer = new WebSocketServer({
+ // This is the `httpServer` we created in a previous step.
+ server: httpServer,
+ // Pass a different path here if app.use
+ // serves expressMiddleware at a different path
+ path: '/subscription',
+ });
+
+ // Hand in the schema we just created and have the
+ // WebSocketServer start listening.
+ const serverCleanup = useServer({ schema }, wsServer);
+
await server.start();
app.use(
@@ -169,18 +186,12 @@ async function main() {
})
);
- const wsServer = new WebSocketServer({
- server: httpServer,
- path: '/subscription',
- });
- const serverCleanup = useServer({ schema }, wsServer);
-
const PORT = process.env.CROWNLABS_QLKUBE_PORT || 8080;
httpServer.listen({ port: PORT }, () => {
console.log(`🚀 Server ready at http://localhost:${PORT}/`);
console.log(
- `🚀 Subscriptions ready at ws://localhost:${PORT}/subscriptions`
+ `🚀 Subscriptions ready at ws://localhost:${PORT}/subscription`
);
global.harborSchema = harborSchema;
repl.start('> ');
diff --git a/qlkube/yarn.lock b/qlkube/yarn.lock
index bacfadbc2..ffdd2703a 100644
--- a/qlkube/yarn.lock
+++ b/qlkube/yarn.lock
@@ -55,13 +55,6 @@
"@apollo/utils.keyvaluecache" "^2.1.0"
"@apollo/utils.logger" "^2.0.0"
-"@apollo/server-plugin-landing-page-graphql-playground@^4.0.1":
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/@apollo/server-plugin-landing-page-graphql-playground/-/server-plugin-landing-page-graphql-playground-4.0.1.tgz#1d3c98fe93e1bc3c9be3470e220b9578360d175e"
- integrity sha512-tWhQzD7DtiTO/wfbGvasryz7eJSuEh9XJHgRTMZI7+Wu/omylG5gH6K6ksg1Vccg8/Xuglfi2f1M5Nm/IlBBGw==
- dependencies:
- "@apollographql/graphql-playground-html" "1.6.29"
-
"@apollo/server@^4.10.4":
version "4.11.0"
resolved "https://registry.yarnpkg.com/@apollo/server/-/server-4.11.0.tgz#21c0f10ad805192a5485e58ed5c5b3dbe2243174"
@@ -174,13 +167,6 @@
resolved "https://registry.yarnpkg.com/@apollo/utils.withrequired/-/utils.withrequired-2.0.1.tgz#e72bc512582a6f26af150439f7eb7473b46ba874"
integrity sha512-YBDiuAX9i1lLc6GeTy1m7DGLFn/gMnvXqlalOIMjM7DeOgIacEjjfwPqb0M1CQ2v11HhR15d1NmxJoRCfrNqcA==
-"@apollographql/graphql-playground-html@1.6.29":
- version "1.6.29"
- resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453"
- integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==
- dependencies:
- xss "^1.0.8"
-
"@exodus/schemasafe@^1.0.0-rc.2":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f"
@@ -995,11 +981,6 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
-commander@^2.20.3:
- version "2.20.3"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
- integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-
commander@~12.1.0:
version "12.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3"
@@ -1088,11 +1069,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.3:
shebang-command "^2.0.0"
which "^2.0.1"
-cssfilter@0.0.10:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae"
- integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==
-
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -3078,8 +3054,16 @@ string-argv@~0.3.2:
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
-"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
- name string-width-cjs
+"string-width-cjs@npm:string-width@^4.2.0":
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -3113,8 +3097,14 @@ string_decoder@^1.3.0:
dependencies:
safe-buffer "~5.2.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- name strip-ansi-cjs
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -3383,8 +3373,16 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
- name wrap-ansi-cjs
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -3421,14 +3419,6 @@ ws@^8.11.0, ws@^8.17.1:
resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc"
integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
-xss@^1.0.8:
- version "1.0.15"
- resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.15.tgz#96a0e13886f0661063028b410ed1b18670f4e59a"
- integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==
- dependencies:
- commander "^2.20.3"
- cssfilter "0.0.10"
-
y18n@^5.0.5:
version "5.0.8"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"