graphql-compose / graphql-compose/graphql-compose-mongoose
Wrap resolver and set a new extended input to it
- 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.