patch-package
--- a/node_modules/express-graphql/index.js
+++ b/node_modules/express-graphql/index.js
@@ -20,6 +20,23 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
  */
 module.exports = graphqlHTTP;
 
+const parseValue = (value) => {
+  let parsedValue = value
+  if (
+    !Number.isNaN(Number(value)) &&
+    (typeof value === "string" && value.trim() !== "")
+  ) {
+    parsedValue = Number(value)
+  } else if (
+    value !== null &&
+    (value.toLowerCase() === "true" || value.toLowerCase() === "false")
+  ) {
+    parsedValue = value.toLowerCase() === "true"
+  }
+
+  return parsedValue
+}
+
 function graphqlHTTP(options) {
   if (!options) {
     throw new Error('GraphQL middleware requires options.');
@@ -81,6 +98,10 @@ function graphqlHTTP(options) {
 
       query = params.query;
       variables = params.variables;
+      const parsedVariables = {}
+      Object.entries(variables).forEach(([name, value]) => {
+        parsedVariables[`${name}`] = parseValue(value)
+      })
       operationName = params.operationName;
       showGraphiQL = canDisplayGraphiQL(request, params) && graphiql; // If there is no query, but GraphiQL will be displayed, do not produce
       // a result, otherwise return a 400: Bad Request.
@@ -154,7 +175,7 @@ function graphqlHTTP(options) {
           document: documentAST,
           rootValue,
           contextValue: context,
-          variableValues: variables,
+          variableValues: parsedVariables,
           operationName,
           fieldResolver,
           typeResolver

Add patch to express-graphql to parse certain string variables to booleans or ints
[Package] Add patch to express-graphql to parse certain string variables to booleans or ints
