react-relay-network-layer
Version:
Network Layer for React Relay and Express (Batch Queries, AuthToken, Logging, Retry)
29 lines (24 loc) • 1.07 kB
JavaScript
/* eslint-disable no-console */
export default function loggerMiddleware(opts) {
const logger = opts && opts.logger || console.log.bind(console, '[RELAY-NETWORK]');
return next => req => {
const query = `${req.relayReqType} ${req.relayReqId}`;
logger(`Run ${query}`, req);
return next(req).then(res => {
if (res.status !== 200) {
logger(`Status ${res.status}: ${res.statusText} for ${query}`, req, res);
if (res.status === 400 && req.relayReqType === 'batch-query') {
logger(`WARNING: You got 400 error for 'batch-query', probably problem on server side.
You should connect wrapper:
import graphqlHTTP from 'express-graphql';
import { graphqlBatchHTTPWrapper } from 'react-relay-network-layer';
const graphQLMiddleware = graphqlHTTP({ schema: GraphQLSchema });
app.use('/graphql/batch', bodyParser.json(), graphqlBatchHTTPWrapper(graphQLMiddleware));
app.use('/graphql', graphQLMiddleware);
`);
}
}
return res;
});
};
}