graphql-mocks
Version:
Tools for setting up graphql test resolvers
48 lines (35 loc) • 2.08 kB
JavaScript
function extractAllDependencies(context) {
var _context$pack$depende, _context$pack;
var 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) {
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
required: true
};
var 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
var extracted = {};
var missingRequiredDependencies = [];
requestedDependencies.forEach(dependencyName => {
var _options;
var 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) {
var missingKeys = missingRequiredDependencies.map(key => "\"".concat(key, "\"")).join(', ');
throw new Error("Expected to find dependencies with keys: ".concat(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;
}
export { extractAllDependencies, extractDependencies };
//# sourceMappingURL=extract-dependencies.js.map