UNPKG

twitch-graphql

Version:
92 lines (91 loc) 5.12 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var _a, _b, _c, _d, _e, _f; Object.defineProperty(exports, "__esModule", { value: true }); var express_1 = __importDefault(require("express")); var cors_1 = __importDefault(require("cors")); var http_1 = __importDefault(require("http")); var query_type_schema_1 = require("./schema/query-type-schema"); var subscriber_type_schema_1 = require("./schema/subscriber-type-schema"); var user_type_schema_1 = require("./schema/user-type-schema"); var stream_type_schema_1 = require("./schema/stream-type-schema"); var game_type_schema_1 = require("./schema/game-type-schema"); var graphql_modules_1 = require("graphql-modules"); var user_subscriber_link_type_schema_1 = require("./schema/user-subscriber-link-type-schema"); var game_stream_link_type_schema_1 = require("./schema/game-stream-link-type-schema"); var redemption_pubsub_type_schema_1 = require("./schema/redemption-pubsub-type-schema"); var stream_user_link_type_schema_1 = require("./schema/stream-user-link-type-schema"); var redemption_pubsub_user_link_type_schema_1 = require("./schema/redemption-pubsub-user-link-type-schema"); var chat_pubsub_type_schema_1 = require("./schema/chat-pubsub-type-schema"); var apollo_server_express_1 = require("apollo-server-express"); var chat_pubsub_user_link_schema_1 = require("./schema/chat-pubsub-user-link-schema"); var bit_pubsub_type_schema_1 = require("./schema/bit-pubsub-type-schema"); var bit_pubsub_user_link_schema_1 = require("./schema/bit-pubsub-user-link-schema"); var subscription_pubsub_type_schema_1 = require("./schema/subscription-pubsub-type-schema"); var subscription_pubsub_user_link_schema_1 = require("./schema/subscription-pubsub-user-link-schema"); var subscription_pubsub_chat_link_schema_1 = require("./schema/subscription-pubsub-chat-link-schema"); var ServerSetup_1 = require("./helpers/ServerSetup"); var follow_pubsub_type_schema_1 = require("./schema/follow-pubsub-type-schema"); require('dotenv').config(); var port = 5555; var portEnv = parseInt(((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a.PORT) || ''); if (portEnv) { port = portEnv; } var portIndex = ((_b = process === null || process === void 0 ? void 0 : process.argv) === null || _b === void 0 ? void 0 : _b.findIndex(function (arg) { return arg === '--port' || arg === '-p'; })) + 1; var portCmdNum = parseInt((_c = process === null || process === void 0 ? void 0 : process.argv) === null || _c === void 0 ? void 0 : _c[portIndex]); if (portCmdNum) { port = portCmdNum; } var useGraphiql = false; if (((_e = (_d = process === null || process === void 0 ? void 0 : process.env) === null || _d === void 0 ? void 0 : _d.GRAPHIQL) === null || _e === void 0 ? void 0 : _e.toLowerCase()) === 'true') { useGraphiql = true; } if ((_f = process === null || process === void 0 ? void 0 : process.argv) === null || _f === void 0 ? void 0 : _f.some(function (arg) { return arg.toLowerCase() === '--graphiql' || arg.toLowerCase() === '-g'; })) { useGraphiql = true; } var app = graphql_modules_1.createApplication({ modules: [ query_type_schema_1.QueryModule, subscriber_type_schema_1.SubscriberModule, user_type_schema_1.UserModule, stream_type_schema_1.StreamModule, user_subscriber_link_type_schema_1.UserSubscriberLinkModule, game_stream_link_type_schema_1.GameStreamLinkModule, game_type_schema_1.GameModule, stream_user_link_type_schema_1.StreamUserLinkModule, redemption_pubsub_type_schema_1.RedemptionPubSubModule, redemption_pubsub_user_link_type_schema_1.RedemptionUserLinkModule, chat_pubsub_type_schema_1.ChatPubSubModule, chat_pubsub_user_link_schema_1.ChatUserLinkModule, bit_pubsub_type_schema_1.BitPubSubModule, bit_pubsub_user_link_schema_1.BitUserLinkModule, subscription_pubsub_type_schema_1.SubscriptionPubSubModule, subscription_pubsub_user_link_schema_1.SubscriptionPubSubUserLinkModule, subscription_pubsub_chat_link_schema_1.SubscriptionPubSubChatLinkModule, follow_pubsub_type_schema_1.FollowPubSubModule, ], }); app.createSubscription(); var schema = app.createSchemaForApollo(); var server = new apollo_server_express_1.ApolloServer({ schema: schema, introspection: useGraphiql, subscriptions: { path: "/subscriptions", onConnect: ServerSetup_1.onConnect, }, context: ServerSetup_1.context, playground: useGraphiql, }); var expressApp = express_1.default(); expressApp.use(cors_1.default()); server.applyMiddleware({ app: expressApp }); var httpServer = http_1.default.createServer(expressApp); server.installSubscriptionHandlers(httpServer); httpServer.listen(port, function () { console.log("\uD83D\uDE80 Server ready at http://localhost:" + port + server.graphqlPath); console.log("\uD83D\uDE80 Subscriptions ready at ws://localhost:" + port + server.subscriptionsPath); });