Skip to content

Add option to toggle if callsite should include all underlying resource parameters #56

Open

Description

@magicmark

Right now, we assume that resources look something like this:

function getFoo({ count, type, somethingElse }, fetch, options) {
  ...

i.e. we assume that the underlying resource takes its actual data arguments in the first parameter as an object. The rest are meta arguments which have defaults, and we never really care about overriding them from inside a resolver method.

In this world, a dataloader interface would look like this:

getFoo.load({ count: 4, type: 'baz', somethingElse: 'qux' });

This fits nicely with the interface of dataloader anyway (you can only send one argument as a key)

This assumption has been made because that's the interface of the underlying resources Yelp currently uses. But this might not always be true!

Proposed New Functionality

We should add an option - something like "useAllArguments" so if you wanted to override fetch from a resolver method, your dataloader interface would look like this:

getFoo.load([{ count: 4, type: 'baz', somethingElse: 'qux' }, myCustomFetch]);

What's the workaround in the meantime

You can use resource middleware to transform the thing that actually gets send to the underlying resource for now, to add extra arguments

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions