mirror of
https://github.com/wassname/talk.git
synced 2026-08-09 12:30:42 +08:00
Initial implementation at plugins
This commit is contained in:
+20
-2
@@ -4,8 +4,26 @@
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const {mergeStrings} = require('gql-merge');
|
||||
const debug = require('debug')('talk:graph:typeDefs');
|
||||
const plugins = require('../plugins');
|
||||
|
||||
// Load the typeDefs from the graphql file.
|
||||
const typeDefs = fs.readFileSync(path.join(__dirname, 'typeDefs.graphql'), 'utf8');
|
||||
/**
|
||||
* Plugin support requires us to merge the type definitions from the loaded
|
||||
* graphql tags, this gives us the ability to extend any portion of the
|
||||
* available graph.
|
||||
*/
|
||||
const typeDefs = mergeStrings([
|
||||
|
||||
// Load the core graph definitions from the filesystem.
|
||||
fs.readFileSync(path.join(__dirname, 'typeDefs.graphql'), 'utf8'),
|
||||
|
||||
// Load the plugin definitions from the manager.
|
||||
...plugins.get('server', 'typeDefs').map(({plugin, typeDefs}) => {
|
||||
debug(`added plugin '${plugin.name}'`);
|
||||
|
||||
return typeDefs;
|
||||
})
|
||||
]);
|
||||
|
||||
module.exports = typeDefs;
|
||||
|
||||
Reference in New Issue
Block a user