Skip to content

Commit

Permalink
reorganize delegate files
Browse files Browse the repository at this point in the history
  • Loading branch information
yaacovCR committed Jul 7, 2020
1 parent 942ed48 commit 0cc6745
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 33 deletions.
2 changes: 1 addition & 1 deletion packages/delegate/src/createMergedResolver.ts
@@ -1,6 +1,6 @@
import { IFieldResolver } from '@graphql-tools/utils';

import { unwrapResult, dehoistResult } from './proxiedResult';
import { unwrapResult, dehoistResult } from './results/proxiedResult';
import { defaultMergedResolver } from './defaultMergedResolver';

export function createMergedResolver({
Expand Down
@@ -1,8 +1,9 @@
import { GraphQLSchema, FieldNode, GraphQLObjectType, GraphQLResolveInfo } from 'graphql';

import { collectFields, GraphQLExecutionContext } from '@graphql-tools/utils';
import { isSubschemaConfig } from './Subschema';
import { MergedTypeInfo, SubschemaConfig, StitchingInfo } from './types';
import { isSubschemaConfig } from '../Subschema';
import { MergedTypeInfo, SubschemaConfig, StitchingInfo } from '../types';

import { memoizeInfoAnd2Objectsand1Primitive } from './memoize';

function collectSubFields(info: GraphQLResolveInfo, typeName: string): Record<string, Array<FieldNode>> {
Expand Down
5 changes: 3 additions & 2 deletions packages/delegate/src/results/handleObject.ts
Expand Up @@ -5,8 +5,9 @@ import { setErrors, slicedError } from '@graphql-tools/utils';
import { SubschemaConfig } from '../types';

import { setObjectSubschema } from '../Subschema';
import { mergeFields } from '../mergeFields';
import { getFieldsNotInSubschema } from '../getFieldsNotInSubschema';

import { mergeFields } from './mergeFields';
import { getFieldsNotInSubschema } from './getFieldsNotInSubschema';

export function handleObject(
type: GraphQLCompositeType,
Expand Down
File renamed without changes.
@@ -1,8 +1,9 @@
import { FieldNode, SelectionNode, Kind, GraphQLResolveInfo, SelectionSetNode } from 'graphql';

import { mergeProxiedResults } from './proxiedResult';
import { MergedTypeInfo, SubschemaConfig } from './types';
import { MergedTypeInfo, SubschemaConfig } from '../types';

import { memoize3, memoize2 } from './memoize';
import { mergeProxiedResults } from './mergeProxiedResults';

const sortSubschemasByProxiability = memoize3(function (
mergedTypeInfo: MergedTypeInfo,
Expand Down
25 changes: 25 additions & 0 deletions packages/delegate/src/results/mergeProxiedResults.ts
@@ -0,0 +1,25 @@
import { mergeDeep, ERROR_SYMBOL } from '@graphql-tools/utils';

import { SubschemaConfig } from '../types';
import { OBJECT_SUBSCHEMA_SYMBOL, FIELD_SUBSCHEMA_MAP_SYMBOL } from '../symbols';

export function mergeProxiedResults(target: any, ...sources: Array<any>): any {
const results = sources.filter(source => !(source instanceof Error));
const fieldSubschemaMap = results.reduce((acc: Record<any, SubschemaConfig>, source: any) => {
const subschema = source[OBJECT_SUBSCHEMA_SYMBOL];
Object.keys(source).forEach(key => {
acc[key] = subschema;
});
return acc;
}, {});

const result = results.reduce(mergeDeep, target);
result[FIELD_SUBSCHEMA_MAP_SYMBOL] = target[FIELD_SUBSCHEMA_MAP_SYMBOL]
? Object.assign({}, target[FIELD_SUBSCHEMA_MAP_SYMBOL], fieldSubschemaMap)
: fieldSubschemaMap;

const errors = sources.map((source: any) => (source instanceof Error ? source : source[ERROR_SYMBOL]));
result[ERROR_SYMBOL] = target[ERROR_SYMBOL].concat(...errors);

return result;
}
@@ -1,12 +1,11 @@
import { GraphQLError } from 'graphql';

import { mergeDeep, ERROR_SYMBOL, relocatedError, setErrors, getErrors } from '@graphql-tools/utils';
import { ERROR_SYMBOL, relocatedError, setErrors, getErrors } from '@graphql-tools/utils';

import { handleNull } from './results/handleNull';
import { OBJECT_SUBSCHEMA_SYMBOL } from '../symbols';
import { getSubschema, setObjectSubschema } from '../Subschema';

import { FIELD_SUBSCHEMA_MAP_SYMBOL, OBJECT_SUBSCHEMA_SYMBOL } from './symbols';
import { getSubschema, setObjectSubschema } from './Subschema';
import { SubschemaConfig } from './types';
import { handleNull } from './handleNull';

export function isProxiedResult(result: any) {
return result != null ? result[ERROR_SYMBOL] : result;
Expand Down Expand Up @@ -66,24 +65,3 @@ export function dehoistResult(parent: any, delimeter = '__gqltf__'): any {

return result;
}

export function mergeProxiedResults(target: any, ...sources: Array<any>): any {
const results = sources.filter(source => !(source instanceof Error));
const fieldSubschemaMap = results.reduce((acc: Record<any, SubschemaConfig>, source: any) => {
const subschema = source[OBJECT_SUBSCHEMA_SYMBOL];
Object.keys(source).forEach(key => {
acc[key] = subschema;
});
return acc;
}, {});

const result = results.reduce(mergeDeep, target);
result[FIELD_SUBSCHEMA_MAP_SYMBOL] = target[FIELD_SUBSCHEMA_MAP_SYMBOL]
? Object.assign({}, target[FIELD_SUBSCHEMA_MAP_SYMBOL], fieldSubschemaMap)
: fieldSubschemaMap;

const errors = sources.map((source: any) => (source instanceof Error ? source : source[ERROR_SYMBOL]));
result[ERROR_SYMBOL] = target[ERROR_SYMBOL].concat(...errors);

return result;
}

0 comments on commit 0cc6745

Please sign in to comment.