graphql-compose / graphql-compose/graphql-compose-mongoose

Wrap resolver and set a new extended input to it

Open
#299 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
706
Forks
98
PR merge metrics
No merged PRs in 30d

Description

Hi! I need to wrap a resolver with a new extended one and I need to set a custom input with this wrapper

This is what I've got:

````
const TypeComposer = composeWithMongoose(myMongooseModel, {});

// I need to use this input with ExtendedQueryResolver wrapper
const ExtendedQueryInput = schemaComposer.createInputTC('
input extendedQueryInput {
newField:Boolean,
filter:FilterFindOneUserInput,
skip:Int,
sort:SortFindOneUserInput
}
');

const ExtendedQueryResolver = (next) => (rp) => {
const { source, args, context, info, projection } = rp;
const { filter, skip, sort, newField } = rp.args || {};
const resultPromise = next(rp);

// ... do stuff
// before calling findOne resolver

return resultPromise.then((payload) => {
//after calling findOne resolver, payload has the result of findOne
if (newField) {
// ... do some other stuff
// finally chain 'return payload;'
} else {
return payload;
}
});
};

var query = {};
query['extendedQuery'] = TypeComposer.getResolver('findOne').wrapResolve(
ExtendedQueryResolver
);
````

ExtendedQueryInput is the same input that findOne accepts but it has `newField` that is needed in order to execute some other instructions if true.

How can this extended input be set to the wrapper?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.