React native not sending real file data to server (Meteor + Apollo).
the client side mutation
```
const UPLOAD_IMAGE = gql`
  mutation uploadImage($file: Upload!) {
    uploadImage(file: $file)
  }
`;

const file = new ReactNativeFile({
  uri, // From camera roll
  name: 'testing',
  type: 'image/jpeg',
});

uploadAvatar({
  variables: {
    file,
  },
});
```

the client side setup
```
...
const httpLink = createUploadLink({ uri: api });
const link = split(
  // split based on operation type
  ({ query }) => {
    const { kind, operation } = getMainDefinition(query);
    return kind === 'OperationDefinition' && operation === 'subscription';
  },
  wsLink,
  httpLink,
);

const client = new ApolloClient({
  link: ApolloLink.from([middleWareLink, errorLink, stateLink, authLink, link]),
  cache,
});
```

the server side setup (meteor)
```
import { mergeTypes, mergeResolvers } from 'merge-graphql-schemas';

// Resolvers
import { accountTypeDefs, accountResolvers } from './account';
import { categoriesResolvers } from './categories';
...

// TypeDefs
import types from './schema.graphql';
// I have declared "scalar Upload" in schema.graphql already

const resolvers = mergeResolvers([
  ...accountResolvers,
  ...categoriesResolvers,
  ...
  {
    Upload: GraphQLUpload
  },
]);

const typeDefs = mergeTypes([...accountTypeDefs, types]);

const schema = makeExecutableSchema({ typeDefs, resolvers });

createApolloServer(
  {
    schema,
  },
  {
    graphiql: true,
    configServer: (expressServer) => {
      expressServer.use(bodyParser.json({ limit: '5mb' }));
      expressServer.use(graphqlUploadExpress());
    },
  },
);
```

The server receives an object instead of a Promise for further processing.
```
{
  uri, // From camera roll
  name: 'testing',
  type: 'image/jpeg',
}
```

I've read a lot of the related issues but not sure which parts are incorrect. thanks!!