Skip to content

Commit 7f9d83e

Browse files
authored
Merge pull request #450 from sjwilczynski/user/stwilczy/useRelayTypes
fix(graphql-js-operation-payload-generator): use relay-test-utils types for consistency
2 parents b36a395 + d4af100 commit 7f9d83e

File tree

6 files changed

+34
-40
lines changed

6 files changed

+34
-40
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "patch",
3+
"comment": "use relay-test-utils types for consistency",
4+
"packageName": "@graphitation/graphql-js-operation-payload-generator",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}

packages/graphql-js-operation-payload-generator/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"test:schema-types": "ts-node ./scripts/graphql-codegen.ts"
1919
},
2020
"dependencies": {
21+
"@types/relay-test-utils": ">=17.0.0",
2122
"deepmerge": "^4.2.2",
2223
"invariant": "^2.2.4",
2324
"graphql": "^15.0.0"

packages/graphql-js-operation-payload-generator/src/__tests__/RelayMockPayloadGenerator.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ const schema = buildSchema(
3131
"utf8",
3232
),
3333
);
34-
console.log(
35-
require.resolve("relay-test-utils-internal/lib/testschema.graphql"),
36-
);
3734

3835
function testGeneratedData(
3936
documentNode: DocumentNode,

packages/graphql-js-operation-payload-generator/src/index.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,12 @@ const TYPENAME_KEY = "__typename";
6363

6464
export function generate<TypeMap extends DefaultMockResolvers>(
6565
operation: OperationDescriptor,
66-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
67-
mockResolvers: MockResolvers<TypeMap> = DEFAULT_MOCK_RESOLVERS as any, // FIXME: Why does TS not accept this?
66+
mockResolvers?: MockResolvers<TypeMap> | null,
6867
enableDefer: undefined | false = false,
6968
generateId?: () => number,
7069
): { data: MockData } {
71-
mockResolvers = { ...DEFAULT_MOCK_RESOLVERS, ...mockResolvers };
72-
const resolveValue = createValueResolver(mockResolvers, generateId);
70+
const resolvers = { ...DEFAULT_MOCK_RESOLVERS, ...mockResolvers };
71+
const resolveValue = createValueResolver(resolvers, generateId);
7372

7473
// RelayMockPayloadGenerator will execute documents that have optional
7574
// boolean variables that are not passed by the user, but are required
@@ -108,7 +107,7 @@ export function generate<TypeMap extends DefaultMockResolvers>(
108107
document: document,
109108
variableValues: operation.request.variables,
110109
rootValue: mockCompositeType(
111-
mockResolvers,
110+
resolvers,
112111
getRootType(operation) as GraphQLObjectType,
113112
null,
114113
resolveValue,
@@ -139,7 +138,7 @@ export function generate<TypeMap extends DefaultMockResolvers>(
139138
}
140139
const result = {
141140
...mockCompositeType(
142-
mockResolvers,
141+
resolvers,
143142
namedReturnType,
144143
userValue?.[TYPENAME_KEY] || null,
145144
resolveValue,

packages/graphql-js-operation-payload-generator/src/vendor/RelayMockPayloadGenerator.ts

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,38 +7,11 @@
77
* https://github.com/facebook/relay/blob/b8d2694dbef01f003c4452fa0364f9a7f20245ee/LICENSE
88
*/
99

10-
export type MockResolverContext = Readonly<{
11-
parentType: string | null;
12-
name: string;
13-
alias: string | null;
14-
path: ReadonlyArray<string>;
15-
args?: Record<string, unknown>;
16-
}>;
10+
import type { MockResolvers } from "relay-test-utils";
11+
import type { MockResolverContext } from "relay-test-utils/lib/RelayMockPayloadGenerator";
1712

18-
type DeepPartial<T> = T extends object
19-
? {
20-
[P in keyof T]?: DeepPartial<T[P]>;
21-
}
22-
: T;
23-
24-
type MockResolver<T> = (
25-
context: MockResolverContext,
26-
generateId: () => number,
27-
) => DeepPartial<T> | undefined;
28-
29-
export type DefaultMockResolvers = Partial<{
30-
ID: string;
31-
Boolean: boolean;
32-
Int: number;
33-
Float: number;
34-
[key: string]: unknown;
35-
}>;
36-
37-
export declare type MockResolvers<
38-
TypeMap extends DefaultMockResolvers = DefaultMockResolvers,
39-
> = {
40-
[K in keyof TypeMap]?: MockResolver<TypeMap[K]>;
41-
};
13+
export type { MockResolvers, DefaultMockResolvers } from "relay-test-utils";
14+
export type { MockResolverContext } from "relay-test-utils/lib/RelayMockPayloadGenerator";
4215

4316
export interface MockData {
4417
__typename?: string;

yarn.lock

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3807,6 +3807,14 @@
38073807
dependencies:
38083808
"@types/react" "*"
38093809

3810+
"@types/react-relay@*":
3811+
version "16.0.6"
3812+
resolved "https://registry.yarnpkg.com/@types/react-relay/-/react-relay-16.0.6.tgz#afc467fab89dc4c96fb1424f84b869750f5c42f2"
3813+
integrity sha512-VTntVQJhlwQYNUlbNgGf8RYy7EtQPRZqsD/w2Si0ygZspJXuNlVdRkklWMFN99EMRhHDpqlNHD8i3wIs7QRz9g==
3814+
dependencies:
3815+
"@types/react" "*"
3816+
"@types/relay-runtime" "*"
3817+
38103818
"@types/react-router-dom@^5.3.3":
38113819
version "5.3.3"
38123820
resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83"
@@ -3852,6 +3860,15 @@
38523860
resolved "https://registry.yarnpkg.com/@types/relay-runtime/-/relay-runtime-17.0.4.tgz#428526fc3e6dfb6e0a5730c38ad521cb1eea189b"
38533861
integrity sha512-fB77br4lXlBYM/HpI6VI6KCrj5pw0LiAnkZOkffjirNYso+dzXGWkeIm0G0MGszD8WY1et+r1Uj2TA6rscBXNQ==
38543862

3863+
"@types/relay-test-utils@>=17.0.0":
3864+
version "17.0.0"
3865+
resolved "https://registry.yarnpkg.com/@types/relay-test-utils/-/relay-test-utils-17.0.0.tgz#a427470f26f808b4962c8d0a66c2d9af25db156e"
3866+
integrity sha512-q+Nq3RpJ4fKcRfJQTK/IvKg4cmrJkbboR8V4hxlEW5MkMTNqGCOJ4xlKagSTsLycovw3Eea6fNmmBSaMlKRwCw==
3867+
dependencies:
3868+
"@types/react" "*"
3869+
"@types/react-relay" "*"
3870+
"@types/relay-runtime" "*"
3871+
38553872
"@types/retry@^0.12.0":
38563873
version "0.12.1"
38573874
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065"

0 commit comments

Comments
 (0)