private IReadOnlyList <GraphQLRequest> ParseRequest(
            byte[] buffer, int bytesBuffered)
        {
            var graphQLData = new ReadOnlySpan <byte>(buffer);

            graphQLData = graphQLData.Slice(0, bytesBuffered);

            var requestParser = new Utf8GraphQLRequestParser(
                graphQLData,
                _parserOptions,
                _documentCache,
                _documentHashProvider);

            return(requestParser.Parse());
        }
        private static bool TryDeserializeDataStartMessage(
            GraphQLSocketMessage parsedMessage,
            out OperationMessage message)
        {
            if (!parsedMessage.HasPayload)
            {
                message = null;
                return(false);
            }

            IReadOnlyList <GraphQLRequest> batch =
                Utf8GraphQLRequestParser.Parse(parsedMessage.Payload);

            message = new DataStartMessage(parsedMessage.Id, batch[0]);
            return(true);
        }
Exemple #3
0
        private static bool TryDeserializeDataStartMessage(
            GraphQLSocketMessage parsedMessage,
            [NotNullWhen(true)] out OperationMessage?message)
        {
            if (parsedMessage.Payload.Length == 0 || parsedMessage.Id is null)
            {
                message = null;
                return(false);
            }

            IReadOnlyList <GraphQLRequest> batch =
                Utf8GraphQLRequestParser.Parse(parsedMessage.Payload);

            message = new DataStartMessage(parsedMessage.Id, batch[0]);
            return(true);
        }