Skip to content

Commit

Permalink
change variable name
Browse files Browse the repository at this point in the history
  • Loading branch information
yaacovCR committed Jun 5, 2023
1 parent 6a9546a commit 1d889d4
Showing 1 changed file with 101 additions and 65 deletions.
166 changes: 101 additions & 65 deletions src/execution/execute.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ export interface ExecutionContext {
typeResolver: GraphQLTypeResolver<any, any>;
subscribeFieldResolver: GraphQLFieldResolver<any, any>;
errors: Array<GraphQLError>;
publisher: IncrementalPublisher;
incrementalPublisher: IncrementalPublisher;
}

/**
Expand Down Expand Up @@ -289,21 +289,21 @@ function executeImpl(
// Errors from sub-fields of a NonNull type may propagate to the top level,
// at which point we still log the error and null the parent field, which
// in this case is the entire response.
const { publisher, errors } = exeContext;
const { incrementalPublisher, errors } = exeContext;
try {
const result = executeOperation(exeContext);
if (isPromise(result)) {
return result.then(
(data) => {
const initialResult = buildResponse(data, errors);
publisher.publishInitial();
if (publisher.hasNext()) {
incrementalPublisher.publishInitial();
if (incrementalPublisher.hasNext()) {
return {
initialResult: {
...initialResult,
hasNext: true,
},
subsequentResults: publisher.subscribe(),
subsequentResults: incrementalPublisher.subscribe(),
};
}
return initialResult;
Expand All @@ -315,14 +315,14 @@ function executeImpl(
);
}
const initialResult = buildResponse(result, errors);
publisher.publishInitial();
if (publisher.hasNext()) {
incrementalPublisher.publishInitial();
if (incrementalPublisher.hasNext()) {
return {
initialResult: {
...initialResult,
hasNext: true,
},
subsequentResults: publisher.subscribe(),
subsequentResults: incrementalPublisher.subscribe(),
};
}
return initialResult;
Expand Down Expand Up @@ -444,7 +444,7 @@ export function buildExecutionContext(
fieldResolver: fieldResolver ?? defaultFieldResolver,
typeResolver: typeResolver ?? defaultTypeResolver,
subscribeFieldResolver: subscribeFieldResolver ?? defaultFieldResolver,
publisher: new IncrementalPublisher(),
incrementalPublisher: new IncrementalPublisher(),
errors: [],
};
}
Expand All @@ -456,7 +456,7 @@ function buildPerEventExecutionContext(
return {
...exeContext,
rootValue: payload,
// no need to update publisher, incremental delivery is not supported for subscriptions
// no need to update incrementalPublisher, incremental delivery is not supported for subscriptions
errors: [],
};
}
Expand Down Expand Up @@ -709,7 +709,7 @@ function executeField(
path,
incrementalDataRecord,
);
exeContext.publisher.filter(path, incrementalDataRecord);
exeContext.incrementalPublisher.filter(path, incrementalDataRecord);
return null;
});
}
Expand All @@ -723,7 +723,7 @@ function executeField(
path,
incrementalDataRecord,
);
exeContext.publisher.filter(path, incrementalDataRecord);
exeContext.incrementalPublisher.filter(path, incrementalDataRecord);
return null;
}
}
Expand Down Expand Up @@ -924,7 +924,7 @@ async function completePromisedValue(
path,
incrementalDataRecord,
);
exeContext.publisher.filter(path, incrementalDataRecord);
exeContext.incrementalPublisher.filter(path, incrementalDataRecord);
return null;
}
}
Expand Down Expand Up @@ -1200,7 +1200,10 @@ function completeListItemValue(
itemPath,
incrementalDataRecord,
);
exeContext.publisher.filter(itemPath, incrementalDataRecord);
exeContext.incrementalPublisher.filter(
itemPath,
incrementalDataRecord,
);
return null;
}),
);
Expand All @@ -1218,7 +1221,7 @@ function completeListItemValue(
itemPath,
incrementalDataRecord,
);
exeContext.publisher.filter(itemPath, incrementalDataRecord);
exeContext.incrementalPublisher.filter(itemPath, incrementalDataRecord);
completedResults.push(null);
}

Expand Down Expand Up @@ -1748,12 +1751,13 @@ function executeDeferredFragment(
path?: Path,
parentContext?: IncrementalDataRecord,
): void {
const publisher = exeContext.publisher;
const incrementalDataRecord = publisher.prepareNewDeferredFragmentRecord({
label,
path,
parentContext,
});
const incrementalPublisher = exeContext.incrementalPublisher;
const incrementalDataRecord =
incrementalPublisher.prepareNewDeferredFragmentRecord({
label,
path,
parentContext,
});

let promiseOrData;
try {
Expand All @@ -1769,24 +1773,30 @@ function executeDeferredFragment(
if (isPromise(promiseOrData)) {
promiseOrData = promiseOrData.then(
(resolved) =>
publisher.completeDeferredFragmentRecord(
incrementalPublisher.completeDeferredFragmentRecord(
incrementalDataRecord,
resolved,
),
(e) => {
publisher.addFieldError(incrementalDataRecord, e);
publisher.completeDeferredFragmentRecord(incrementalDataRecord, null);
incrementalPublisher.addFieldError(incrementalDataRecord, e);
incrementalPublisher.completeDeferredFragmentRecord(
incrementalDataRecord,
null,
);
},
);
} else {
publisher.completeDeferredFragmentRecord(
incrementalPublisher.completeDeferredFragmentRecord(
incrementalDataRecord,
promiseOrData,
);
}
} catch (e) {
publisher.addFieldError(incrementalDataRecord, e);
publisher.completeDeferredFragmentRecord(incrementalDataRecord, null);
incrementalPublisher.addFieldError(incrementalDataRecord, e);
incrementalPublisher.completeDeferredFragmentRecord(
incrementalDataRecord,
null,
);
}
}

Expand All @@ -1801,12 +1811,13 @@ function executeStreamField(
label?: string,
parentContext?: IncrementalDataRecord,
): IncrementalDataRecord {
const publisher = exeContext.publisher;
const incrementalDataRecord = publisher.prepareNewStreamItemsRecord({
label,
path: itemPath,
parentContext,
});
const incrementalPublisher = exeContext.incrementalPublisher;
const incrementalDataRecord =
incrementalPublisher.prepareNewStreamItemsRecord({
label,
path: itemPath,
parentContext,
});

if (isPromise(item)) {
completePromisedValue(
Expand All @@ -1819,11 +1830,16 @@ function executeStreamField(
incrementalDataRecord,
).then(
(value) =>
publisher.completeStreamItemsRecord(incrementalDataRecord, [value]),
incrementalPublisher.completeStreamItemsRecord(incrementalDataRecord, [
value,
]),
(error) => {
publisher.addFieldError(incrementalDataRecord, error);
publisher.filter(path, incrementalDataRecord);
publisher.completeStreamItemsRecord(incrementalDataRecord, null);
incrementalPublisher.addFieldError(incrementalDataRecord, error);
incrementalPublisher.filter(path, incrementalDataRecord);
incrementalPublisher.completeStreamItemsRecord(
incrementalDataRecord,
null,
);
return null;
},
);
Expand Down Expand Up @@ -1853,12 +1869,12 @@ function executeStreamField(
incrementalDataRecord,
);
completedItem = null;
exeContext.publisher.filter(itemPath, incrementalDataRecord);
exeContext.incrementalPublisher.filter(itemPath, incrementalDataRecord);
}
} catch (error) {
publisher.addFieldError(incrementalDataRecord, error);
publisher.filter(path, incrementalDataRecord);
publisher.completeStreamItemsRecord(incrementalDataRecord, null);
incrementalPublisher.addFieldError(incrementalDataRecord, error);
incrementalPublisher.filter(path, incrementalDataRecord);
incrementalPublisher.completeStreamItemsRecord(incrementalDataRecord, null);
return incrementalDataRecord;
}

Expand All @@ -1873,23 +1889,31 @@ function executeStreamField(
itemPath,
incrementalDataRecord,
);
exeContext.publisher.filter(itemPath, incrementalDataRecord);
exeContext.incrementalPublisher.filter(itemPath, incrementalDataRecord);
return null;
})
.then(
(value) =>
publisher.completeStreamItemsRecord(incrementalDataRecord, [value]),
incrementalPublisher.completeStreamItemsRecord(
incrementalDataRecord,
[value],
),
(error) => {
publisher.addFieldError(incrementalDataRecord, error);
publisher.filter(path, incrementalDataRecord);
publisher.completeStreamItemsRecord(incrementalDataRecord, null);
incrementalPublisher.addFieldError(incrementalDataRecord, error);
incrementalPublisher.filter(path, incrementalDataRecord);
incrementalPublisher.completeStreamItemsRecord(
incrementalDataRecord,
null,
);
},
);

return incrementalDataRecord;
}

publisher.completeStreamItemsRecord(incrementalDataRecord, [completedItem]);
incrementalPublisher.completeStreamItemsRecord(incrementalDataRecord, [
completedItem,
]);
return incrementalDataRecord;
}

Expand All @@ -1908,7 +1932,9 @@ async function executeStreamAsyncIteratorItem(
const { value, done } = await asyncIterator.next();

if (done) {
exeContext.publisher.setIsCompletedAsyncIterator(incrementalDataRecord);
exeContext.incrementalPublisher.setIsCompletedAsyncIterator(
incrementalDataRecord,
);
return { done: true, value: undefined };
}
item = value;
Expand Down Expand Up @@ -1937,7 +1963,7 @@ async function executeStreamAsyncIteratorItem(
itemPath,
incrementalDataRecord,
);
exeContext.publisher.filter(itemPath, incrementalDataRecord);
exeContext.incrementalPublisher.filter(itemPath, incrementalDataRecord);
return null;
});
}
Expand All @@ -1951,7 +1977,7 @@ async function executeStreamAsyncIteratorItem(
itemPath,
incrementalDataRecord,
);
exeContext.publisher.filter(itemPath, incrementalDataRecord);
exeContext.incrementalPublisher.filter(itemPath, incrementalDataRecord);
return { done: false, value: null };
}
}
Expand All @@ -1967,18 +1993,19 @@ async function executeStreamAsyncIterator(
label?: string,
parentContext?: IncrementalDataRecord,
): Promise<void> {
const publisher = exeContext.publisher;
const incrementalPublisher = exeContext.incrementalPublisher;
let index = initialIndex;
let previousIncrementalDataRecord = parentContext ?? undefined;
// eslint-disable-next-line no-constant-condition
while (true) {
const itemPath = addPath(path, index, undefined);
const incrementalDataRecord = publisher.prepareNewStreamItemsRecord({
label,
path: itemPath,
parentContext: previousIncrementalDataRecord,
asyncIterator,
});
const incrementalDataRecord =
incrementalPublisher.prepareNewStreamItemsRecord({
label,
path: itemPath,
parentContext: previousIncrementalDataRecord,
asyncIterator,
});

let iteration;
try {
Expand All @@ -1994,9 +2021,12 @@ async function executeStreamAsyncIterator(
itemPath,
);
} catch (error) {
publisher.addFieldError(incrementalDataRecord, error);
publisher.filter(path, incrementalDataRecord);
publisher.completeStreamItemsRecord(incrementalDataRecord, null);
incrementalPublisher.addFieldError(incrementalDataRecord, error);
incrementalPublisher.filter(path, incrementalDataRecord);
incrementalPublisher.completeStreamItemsRecord(
incrementalDataRecord,
null,
);
// entire stream has errored and bubbled upwards
if (asyncIterator?.return) {
asyncIterator.return().catch(() => {
Expand All @@ -2011,15 +2041,21 @@ async function executeStreamAsyncIterator(
if (isPromise(completedItem)) {
completedItem.then(
(value) =>
publisher.completeStreamItemsRecord(incrementalDataRecord, [value]),
incrementalPublisher.completeStreamItemsRecord(
incrementalDataRecord,
[value],
),
(error) => {
publisher.addFieldError(incrementalDataRecord, error);
publisher.filter(path, incrementalDataRecord);
publisher.completeStreamItemsRecord(incrementalDataRecord, null);
incrementalPublisher.addFieldError(incrementalDataRecord, error);
incrementalPublisher.filter(path, incrementalDataRecord);
incrementalPublisher.completeStreamItemsRecord(
incrementalDataRecord,
null,
);
},
);
} else {
publisher.completeStreamItemsRecord(incrementalDataRecord, [
incrementalPublisher.completeStreamItemsRecord(incrementalDataRecord, [
completedItem,
]);
}
Expand Down

0 comments on commit 1d889d4

Please sign in to comment.