Abstract setupFunctions

This commit is contained in:
David Erwin
2017-04-05 17:07:14 -04:00
parent 350d9e74f2
commit 6735296c3c
2 changed files with 22 additions and 19 deletions
+1 -19
View File
@@ -1,32 +1,14 @@
const schema = require('./schema');
const Context = require('./context');
const plugins = require('../services/plugins');
const setupFunctions = require('./setupFunctions');
const {connectionOptions} = require('../services/redis');
const {RedisPubSub} = require('graphql-redis-subscriptions');
const {SubscriptionManager} = require('graphql-subscriptions');
const {SubscriptionServer} = require('subscriptions-transport-ws');
const _ = require('lodash');
const pubsub = new RedisPubSub(connectionOptions);
let setupFunctions = {
commentAdded: (options, args) => ({
commentAdded: {
filter: (comment) => comment.asset_id === args.asset_id
},
}),
};
/**
* Plugin support requires that we merge in existing setupFunctions with our new
* plugin based ones. This allows plugins to extend existing setupFunctions as well
* as provide new ones.
*/
setupFunctions = plugins.get('server', 'setupFunctions').reduce((acc, {setupFunctions}) => {
return _.merge(acc, setupFunctions);
}, setupFunctions);
module.exports = {
pubsub,
createGraphOptions: (req) => ({
+21
View File
@@ -0,0 +1,21 @@
const plugins = require('../services/plugins');
const _ = require('lodash');
// Core setup functions
let setupFunctions = {
commentAdded: (options, args) => ({
commentAdded: {
filter: (comment) => comment.asset_id === args.asset_id
},
}),
};
/**
* Plugin support requires that we merge in existing setupFunctions with our new
* plugin based ones. This allows plugins to extend existing setupFunctions as well
* as provide new ones.
*/
module.exports = plugins.get('server', 'setupFunctions').reduce((acc, {setupFunctions}) => {
return _.merge(acc, setupFunctions);
}, setupFunctions);