serverless/lib/utils/createApolloClient.js
2017-06-01 13:03:20 -07:00

25 lines
663 B
JavaScript

const apollo = require('apollo-client');
module.exports = (endpoint, auth0IdToken) => {
const networkInterface = apollo.createNetworkInterface({ uri: endpoint });
if (auth0IdToken) {
networkInterface.use([{
applyMiddleware(req, next) {
if (!req.options.headers) {
// eslint-disable-next-line no-param-reassign
req.options.headers = {};
}
const token = auth0IdToken;
// eslint-disable-next-line no-param-reassign
req.options.headers.authorization = token ? `Bearer ${token}` : null;
next();
},
}]);
}
return new apollo.ApolloClient({
networkInterface,
});
};