Skip to content

Commit

Permalink
temporarily make delegationContext optional until next major version (#…
Browse files Browse the repository at this point in the history
…1614)

* temporarily make delegationContext optional until next major version

* add explicit cast

* use type workaround in all transformers

Until and unless better fix can be developed
  • Loading branch information
yaacovCR committed Jun 8, 2020
1 parent bf83ba8 commit 03cd1dc
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 15 deletions.
3 changes: 1 addition & 2 deletions packages/wrap/src/transforms/FilterInputObjectFields.ts
Expand Up @@ -3,7 +3,6 @@ import { GraphQLSchema, GraphQLInputFieldConfig } from 'graphql';
import { Transform, Request, InputFieldFilter } from '@graphql-tools/utils';

import TransformInputObjectFields from './TransformInputObjectFields';
import { DelegationContext } from '@graphql-tools/delegate';
import { InputObjectNodeTransformer } from '../types';

export default class FilterInputObjectFields implements Transform {
Expand All @@ -22,7 +21,7 @@ export default class FilterInputObjectFields implements Transform {
return this.transformer.transformSchema(originalSchema);
}

public transformRequest(originalRequest: Request, delegationContext: DelegationContext): Request {
public transformRequest(originalRequest: Request, delegationContext?: Record<string, any>): Request {
return this.transformer.transformRequest(originalRequest, delegationContext);
}
}
3 changes: 1 addition & 2 deletions packages/wrap/src/transforms/RenameInputObjectFields.ts
Expand Up @@ -3,7 +3,6 @@ import { GraphQLSchema, GraphQLInputFieldConfig, ObjectFieldNode } from 'graphql
import { Transform, Request, mapSchema, MapperKind } from '@graphql-tools/utils';

import TransformInputObjectFields from './TransformInputObjectFields';
import { DelegationContext } from '@graphql-tools/delegate';

export default class RenameInputObjectFields implements Transform {
private readonly renamer: (typeName: string, fieldName: string, inputFieldConfig: GraphQLInputFieldConfig) => string;
Expand Down Expand Up @@ -66,7 +65,7 @@ export default class RenameInputObjectFields implements Transform {
return this.transformer.transformSchema(originalSchema);
}

public transformRequest(originalRequest: Request, delegationContext: DelegationContext): Request {
public transformRequest(originalRequest: Request, delegationContext?: Record<string, any>): Request {
return this.transformer.transformRequest(originalRequest, delegationContext);
}
}
15 changes: 8 additions & 7 deletions packages/wrap/src/transforms/TransformInputObjectFields.ts
Expand Up @@ -43,7 +43,7 @@ export default class TransformInputObjectFields implements Transform {
return this.transformedSchema;
}

public transformRequest(originalRequest: Request, delegationContext: DelegationContext): Request {
public transformRequest(originalRequest: Request, delegationContext?: Record<string, any>): Request {
const fragments = Object.create(null);
originalRequest.document.definitions
.filter(def => def.kind === Kind.FRAGMENT_DEFINITION)
Expand All @@ -55,8 +55,9 @@ export default class TransformInputObjectFields implements Transform {
this.mapping,
this.inputFieldNodeTransformer,
this.inputObjectNodeTransformer,
delegationContext,
originalRequest
originalRequest,
// cast to DelegationContext as workaround to avoid breaking change in types until next major version
delegationContext as DelegationContext
);
return {
...originalRequest,
Expand Down Expand Up @@ -108,8 +109,8 @@ export default class TransformInputObjectFields implements Transform {
mapping: Record<string, Record<string, string>>,
inputFieldNodeTransformer: InputFieldNodeTransformer,
inputObjectNodeTransformer: InputObjectNodeTransformer,
delegationContext: DelegationContext,
request: Request
request: Request,
delegationContext?: DelegationContext
): DocumentNode {
const typeInfo = new TypeInfo(this.transformedSchema);
const newDocument: DocumentNode = visit(
Expand All @@ -127,7 +128,7 @@ export default class TransformInputObjectFields implements Transform {

const transformedInputField =
inputFieldNodeTransformer != null
? inputFieldNodeTransformer(parentTypeName, newName, inputField, delegationContext, request)
? inputFieldNodeTransformer(parentTypeName, newName, inputField, request, delegationContext)
: inputField;

if (Array.isArray(transformedInputField)) {
Expand Down Expand Up @@ -182,7 +183,7 @@ export default class TransformInputObjectFields implements Transform {
};

return inputObjectNodeTransformer != null
? inputObjectNodeTransformer(parentTypeName, newNode, delegationContext, request)
? inputObjectNodeTransformer(parentTypeName, newNode, request, delegationContext)
: newNode;
}
},
Expand Down
8 changes: 4 additions & 4 deletions packages/wrap/src/types.ts
Expand Up @@ -31,15 +31,15 @@ export type InputFieldNodeTransformer = (
typeName: string,
fieldName: string,
inputFieldNode: ObjectFieldNode,
delegationContext: DelegationContext,
request: Request
request: Request,
delegationContext?: DelegationContext
) => ObjectFieldNode | Array<ObjectFieldNode>;

export type InputObjectNodeTransformer = (
typeName: string,
inputObjectNode: ObjectValueNode,
delegationContext: DelegationContext,
request: Request
request: Request,
delegationContext?: DelegationContext
) => ObjectValueNode;

export type FieldTransformer = (
Expand Down

0 comments on commit 03cd1dc

Please sign in to comment.