apollo-datasource-mongodb
apollo-datasource-mongodb copied to clipboard
Typescript error when iniatilising data source
I am encountering the following error when attempting to follow the documentation
Argument of type 'Collection<Profile | UpdateQuery<Profile>>' is not assignable to parameter of type 'Collection<Profile>'.
Types of property 'aggregate' are incompatible.
Here is my ApolloServer iniatilisation
const client = await connectToDb();
const schema = makeExecutableSchema({
typeDefs: [DIRECTIVES, typeDefs],
resolvers,
});
const apolloServer = new ApolloServer({
schema,
introspection: true,
formatError: (error) => {
console.error(error);
return error;
},
playground: {
endpoint: `/dev/graphql`,
},
dataSources: () => ({
profiles: new Profiles(client.db().collection(`profiles`)),
}),
});
The line that throws the error is
profiles: new Profiles(client.db().collection(`profiles`)),
My Profiles data source looks as follows:
import { Profile } from 'generated/mongodbTypes'
export default class Profiles extends MongoDataSource<Profile, any> { }
I am importing the following Profile type generated from my GraphQL schema by Graphql codegen
export type Profile = {
__typename?: 'Profile';
_id: Scalars['ObjectID'];
user_id: Scalars['String'];
portfolios?: Maybe<Array<Portfolio>>;
};
The weird thing is this worked on my other project before switching over to a fresh project - same code from what I can tell.
Edit:
I forgot to post versions, apologies
apollo-datasource-mongodb
0.3.0
node
: 15.11.0
typescript
: 4.2.3
The weird thing is this worked on my other project before switching over to a fresh project - same code from what I can tell.
Was it the same version of this lib in the other project?
Types of property 'aggregate' are incompatible.
So there are two Collection.aggregate
s, and their types are different?
Sorry, I haven't learned typescript yet, so I won't be much help, but happy to merge a PR if someone fixes this ☺️
@lorensr thanks for the reply!
Both projects are using the exact same version. I have just disabled ts checking for this line while I wait for a fix.
@dan-cooke can you post which versions of @types/mongodb do you have from your yarn.lock or package-lock.json?
@9at8 resolved 0.3.0 for both projects
I updated my original post with Typescript and node versions as well! thanks
I have the same error and it's caused by mongodb having released its own types that conflict with those from @type/mongodb
Argument of type
'import("[...]/node_modules/mongodb/mongodb").Collection<import("[...]/src/generated/schema").ActorDbObject>'
is not assignable to parameter of type
'import("[...]/node_modules/apollo-datasource-mongodb/node_modules/@types/mongodb/index").Collection<import("[...]/src/generated/schema").ActorDbObject>'