UNPKG

graphql-mocks

Version:
54 lines (39 loc) 2.13 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function extractAllDependencies(context) { var _context$pack$depende, _context$pack; const packedDependencies = (_context$pack$depende = context === null || context === void 0 ? void 0 : (_context$pack = context.pack) === null || _context$pack === void 0 ? void 0 : _context$pack.dependencies) !== null && _context$pack$depende !== void 0 ? _context$pack$depende : {}; return packedDependencies; } // eslint-disable-next-line @typescript-eslint/explicit-function-return-type function extractDependencies(context, requestedDependencies, options = { required: true }) { const packedDependencies = extractAllDependencies(context); if (!Array.isArray(requestedDependencies) || requestedDependencies.length === 0) { return packedDependencies; } options = typeof options !== 'object' ? { required: true } : options; options.required = 'required' in options ? options.required : true; // eslint-disable-next-line @typescript-eslint/no-explicit-any const extracted = {}; const missingRequiredDependencies = []; requestedDependencies.forEach(dependencyName => { var _options; const dependency = packedDependencies[dependencyName]; if (((_options = options) === null || _options === void 0 ? void 0 : _options.required) && dependency == null) { missingRequiredDependencies.push(dependencyName.toString()); } extracted[dependencyName] = dependency; }); if (missingRequiredDependencies.length > 0) { const missingKeys = missingRequiredDependencies.map(key => `"${key}"`).join(', '); throw new Error(`Expected to find dependencies with keys: ${missingKeys}\n` + 'Either:\n' + ' * Add these to `dependencies` to your `GraphQLHandler` class or `pack` function\n' + ' * Use { required : false } as the third argument to `extractDependencies` and allow for these to be optional dependencies'); } return extracted; } exports.extractAllDependencies = extractAllDependencies; exports.extractDependencies = extractDependencies; //# sourceMappingURL=extract-dependencies.js.map