text: // Import the required libraries
  const graphql = require('graphql');
  const graphqlHTTP = require('express-graphql');
  const express = require('express');
  const cors = require('cors');
  const { logger } = require('@storybook/node-logger');
  
  // Import the data you created above
  const data = require('./data.json');
  
  // Define the User type with two string fields: `id` and `name`.
  // The type of User is GraphQLObjectType, which has child fields
  // with their own types (in this case, GraphQLString).
  const userType = new graphql.GraphQLObjectType({
    name: 'User',
    fields: {
      id: { type: graphql.GraphQLString },
      name: { type: graphql.GraphQLString },
    },
  });
  
  // Define the schema with one top-level field, `user`, that
  // takes an `id` argument and returns the User with that ID.
  // Note that the `query` is a GraphQLObjectType, just like User.
  // The `user` field, however, is a userType, which we defined above.
  const schema = new graphql.GraphQLSchema({
    query: new graphql.GraphQLObjectType({
      name: 'Query',
      fields: {
        user: {
          type: userType,
          // `args` describes the arguments that the `user` query accepts
          args: {
            id: { type: graphql.GraphQLString },
          },
          // The resolve function describes how to "resolve" or fulfill
          // the incoming query.
          // In this case we use the `id` argument from above as a key
          // to get the User from `data`
          resolve(_, args) {
            return data[args.id];
          },
        },
      },
    }),
  });
  
  express()
    .use(cors())
    .use('/graphql', graphqlHTTP({ schema, pretty: true }))
    .listen(3000);
  
  logger.info('GraphQL server running on http://localhost:3000/graphql');
  