1 | Object.defineProperty(exports, "__esModule", { value: true });
|
2 | var graphql_1 = require("graphql");
|
3 | var _1 = require(".");
|
4 | function assertResolveFunctionsPresent(schema, resolverValidationOptions) {
|
5 | if (resolverValidationOptions === void 0) { resolverValidationOptions = {}; }
|
6 | var _a = resolverValidationOptions.requireResolversForArgs, requireResolversForArgs = _a === void 0 ? false : _a, _b = resolverValidationOptions.requireResolversForNonScalar, requireResolversForNonScalar = _b === void 0 ? false : _b, _c = resolverValidationOptions.requireResolversForAllFields, requireResolversForAllFields = _c === void 0 ? false : _c;
|
7 | if (requireResolversForAllFields &&
|
8 | (requireResolversForArgs || requireResolversForNonScalar)) {
|
9 | throw new TypeError('requireResolversForAllFields takes precedence over the more specific assertions. ' +
|
10 | 'Please configure either requireResolversForAllFields or requireResolversForArgs / ' +
|
11 | 'requireResolversForNonScalar, but not a combination of them.');
|
12 | }
|
13 | _1.forEachField(schema, function (field, typeName, fieldName) {
|
14 |
|
15 | if (requireResolversForAllFields) {
|
16 | expectResolveFunction(field, typeName, fieldName);
|
17 | }
|
18 |
|
19 | if (requireResolversForArgs && field.args.length > 0) {
|
20 | expectResolveFunction(field, typeName, fieldName);
|
21 | }
|
22 |
|
23 | if (requireResolversForNonScalar &&
|
24 | !(graphql_1.getNamedType(field.type) instanceof graphql_1.GraphQLScalarType)) {
|
25 | expectResolveFunction(field, typeName, fieldName);
|
26 | }
|
27 | });
|
28 | }
|
29 | function expectResolveFunction(field, typeName, fieldName) {
|
30 | if (!field.resolve) {
|
31 | console.warn(
|
32 |
|
33 | "Resolve function missing for \"" + typeName + "." + fieldName + "\". To disable this warning check https://github.com/apollostack/graphql-tools/issues/131");
|
34 | return;
|
35 | }
|
36 | if (typeof field.resolve !== 'function') {
|
37 | throw new _1.SchemaError("Resolver \"" + typeName + "." + fieldName + "\" must be a function");
|
38 | }
|
39 | }
|
40 | exports.default = assertResolveFunctionsPresent;
|
41 |
|
\ | No newline at end of file |