@@ -3,8 +3,8 @@ require('reify');
33var path = require ( 'path' ) ;
44var express = require ( 'express' ) ;
55var cors = require ( 'cors' ) ;
6- var JsonGraphqlServer = require ( '../dist/json-graphql-server-node' ) . default ;
7-
6+ var JsonGraphqlServer = require ( '../dist/json-graphql-server-node.cjs ' ) . default ;
7+ var ruru = require ( 'ruru/server' ) ;
88var dataFilePath = process . argv . length > 2 ? process . argv [ 2 ] : './data.json' ;
99var data = require ( path . join ( process . cwd ( ) , dataFilePath ) ) ;
1010var PORT = process . env . NODE_PORT || 3000 ;
@@ -23,7 +23,24 @@ process.argv.forEach((arg, index) => {
2323} ) ;
2424
2525app . use ( cors ( ) ) ;
26- app . use ( '/' , JsonGraphqlServer ( data ) ) ;
26+ const gqlServer = JsonGraphqlServer ( data ) ;
27+ const graphiql = ( req , res ) => {
28+ res . writeHead ( 200 , undefined , {
29+ "Content-Type" : "text/html; charset=utf-8" ,
30+ } ) ;
31+ return res . end (
32+ ruru . ruruHTML ( {
33+ endpoint : '/graphql' ,
34+ } )
35+ ) ;
36+ }
37+ app . use ( '/' , ( req , res ) => {
38+ if ( req . is ( 'application/json' ) ) {
39+ return gqlServer ( req , res ) ;
40+ }
41+
42+ return graphiql ( req , res ) ;
43+ } ) ;
2744app . listen ( PORT , HOST ) ;
2845var msg = `GraphQL server running with your data at http://${ HOST } :${ PORT } /` ;
2946console . log ( msg ) ; // eslint-disable-line no-console
0 commit comments