graphql-hive / graphql-hive/graphql-modules
Passing a `Module` reference to module throws Error
- Dominant language
- TypeScript
- Stars
- 1.3k
- Forks
- 113
- Avg merge
- 3h 36m
- Merged PRs (30d)
- 1
Description
**Describe the bug**
Some build systems do not expose prototype on Module, so when a caller passes a direct module interface into the module it blows up. I believe this is the actual correct behaviour for the Module object. I ran into this issue with a vitest setup. Seems unlikely this is the only situation where this might be an issue.
Example
```ts
//resolvers.ts
export const Mutation = {
yourMutation(){
... do things.
}
}
```
And then the caller sets up the module as following
```ts
import { createModule } from 'graphql-modules';
import TypeDefs from './schema.graphql';
import * as Resolvers from './resolvers';
export const YourResolverModule = createModule({
id: 'your-resolver-module',
dirname: __dirname,
typeDefs: TypeDefs,
resolvers: Resolvers,
});
```
Will fail with
TypeError: currentResolvers.hasOwnProperty is not a function
at mergeResolvers (file:///.node_modules/graphql-modules/index.mjs:1694:34)
at createResolvers (file://./node_modules/graphql-modules/index.mjs:1584:43)
at Object.factory (file:///./node_modules/graphql-modules/index.mjs:1971:40)
at file:///./node_modules/graphql-modules/index.mjs:1273:57
Fixes # (issue)
**To Reproduce**
Steps to reproduce the behavior:
//here is a repo that reproduces
https://github.com/jspears/graphql-modules-module-bug
**Expected behavior**
To not throw error
**Environment:**
- OS: Darwin Kernel Version 23.1.0: Mon Oct 9 21:28:45 PDT 2023; root:xnu-10002.41.9~6/RELEASE_ARM64_T6020
- `@graphql-modules/graphql-modules`:
- NodeJS:18.9.1
**Additional context**
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.