graphql-mocks
Version:
Tools for setting up graphql test resolvers
54 lines (39 loc) • 2.13 kB
JavaScript
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
;