UNPKG

1.2 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.extendContext = extendContext;
7exports.createContext = createContext;
8
9var _loaders = require('./loaders');
10
11var _loaders2 = _interopRequireDefault(_loaders);
12
13function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
15var debug = require('debug')('graphbrainz:context');
16
17function extendContext(extension, context, options) {
18 if (extension.extendContext) {
19 if (typeof extension.extendContext === 'function') {
20 debug('Extending context via a function from the \u201C' + extension.name + '\u201D extension.');
21 context = extension.extendContext(context, options);
22 } else {
23 throw new Error('Extension \u201C' + extension.name + '\u201D contains an invalid `extendContext` ' + ('value: ' + extension.extendContext));
24 }
25 }
26 return context;
27}
28
29function createContext(options) {
30 var client = options.client;
31
32 var loaders = (0, _loaders2.default)(client);
33 var context = { client: client, loaders: loaders };
34 return options.extensions.reduce(function (context, extension) {
35 return extendContext(extension, context, options);
36 }, context);
37}
\No newline at end of file