diff --git a/src/execution/execute.ts b/src/execution/execute.ts index df048480ba..8c3df9f265 100644 --- a/src/execution/execute.ts +++ b/src/execution/execute.ts @@ -121,7 +121,7 @@ export interface ExecutionContext { typeResolver: GraphQLTypeResolver; subscribeFieldResolver: GraphQLFieldResolver; errors: Array; - subsequentPayloads: Set; + subsequentPayloads: Set; } /** @@ -601,10 +601,10 @@ function executeFieldsSerially( parentType: GraphQLObjectType, sourceValue: unknown, path: Path | undefined, - fields: GroupedFieldSet, + groupedFieldSet: GroupedFieldSet, ): PromiseOrValue> { return promiseReduce( - fields, + groupedFieldSet, (results, [responseName, fieldGroup]) => { const fieldPath = addPath(path, responseName, parentType.name); const result = executeField( @@ -640,7 +640,7 @@ function executeFields( sourceValue: unknown, path: Path | undefined, fields: GroupedFieldSet, - asyncPayloadRecord?: AsyncPayloadRecord, + incrementalDataRecord?: IncrementalDataRecord | undefined, ): PromiseOrValue> { const results = Object.create(null); let containsPromise = false; @@ -654,7 +654,7 @@ function executeFields( sourceValue, fieldGroup, fieldPath, - asyncPayloadRecord, + incrementalDataRecord, ); if (result !== undefined) { @@ -697,7 +697,7 @@ function executeField( source: unknown, fieldGroup: FieldGroup, path: Path, - asyncPayloadRecord?: AsyncPayloadRecord, + incrementalDataRecord?: IncrementalDataRecord | undefined, ): PromiseOrValue { const fieldName = fieldGroup[0].name.value; const fieldDef = exeContext.schema.getField(parentType, fieldName); @@ -742,7 +742,7 @@ function executeField( info, path, result, - asyncPayloadRecord, + incrementalDataRecord, ); } @@ -753,7 +753,7 @@ function executeField( info, path, result, - asyncPayloadRecord, + incrementalDataRecord, ); if (isPromise(completed)) { @@ -766,9 +766,9 @@ function executeField( returnType, fieldGroup, path, - asyncPayloadRecord, + incrementalDataRecord, ); - filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); + filterSubsequentPayloads(exeContext, path, incrementalDataRecord); return null; }); } @@ -780,9 +780,9 @@ function executeField( returnType, fieldGroup, path, - asyncPayloadRecord, + incrementalDataRecord, ); - filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); + filterSubsequentPayloads(exeContext, path, incrementalDataRecord); return null; } } @@ -820,7 +820,7 @@ function handleFieldError( returnType: GraphQLOutputType, fieldGroup: FieldGroup, path: Path, - asyncPayloadRecord?: AsyncPayloadRecord | undefined, + incrementalDataRecord: IncrementalDataRecord | undefined, ): void { const error = locatedError(rawError, fieldGroup, pathToArray(path)); @@ -830,7 +830,7 @@ function handleFieldError( throw error; } - const errors = asyncPayloadRecord?.errors ?? exeContext.errors; + const errors = incrementalDataRecord?.errors ?? exeContext.errors; // Otherwise, error protection is applied, logging the error and resolving // a null value for this field if one is encountered. @@ -865,7 +865,7 @@ function completeValue( info: GraphQLResolveInfo, path: Path, result: unknown, - asyncPayloadRecord?: AsyncPayloadRecord, + incrementalDataRecord: IncrementalDataRecord | undefined, ): PromiseOrValue { // If result is an Error, throw a located error. if (result instanceof Error) { @@ -882,7 +882,7 @@ function completeValue( info, path, result, - asyncPayloadRecord, + incrementalDataRecord, ); if (completed === null) { throw new Error( @@ -906,7 +906,7 @@ function completeValue( info, path, result, - asyncPayloadRecord, + incrementalDataRecord, ); } @@ -926,7 +926,7 @@ function completeValue( info, path, result, - asyncPayloadRecord, + incrementalDataRecord, ); } @@ -939,7 +939,7 @@ function completeValue( info, path, result, - asyncPayloadRecord, + incrementalDataRecord, ); } /* c8 ignore next 6 */ @@ -957,7 +957,7 @@ async function completePromisedValue( info: GraphQLResolveInfo, path: Path, result: Promise, - asyncPayloadRecord?: AsyncPayloadRecord, + incrementalDataRecord: IncrementalDataRecord | undefined, ): Promise { try { const resolved = await result; @@ -968,7 +968,7 @@ async function completePromisedValue( info, path, resolved, - asyncPayloadRecord, + incrementalDataRecord, ); if (isPromise(completed)) { completed = await completed; @@ -981,9 +981,9 @@ async function completePromisedValue( returnType, fieldGroup, path, - asyncPayloadRecord, + incrementalDataRecord, ); - filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); + filterSubsequentPayloads(exeContext, path, incrementalDataRecord); return null; } } @@ -1055,8 +1055,8 @@ async function completeAsyncIteratorValue( fieldGroup: FieldGroup, info: GraphQLResolveInfo, path: Path, - iterator: AsyncIterator, - asyncPayloadRecord?: AsyncPayloadRecord, + asyncIterator: AsyncIterator, + incrementalDataRecord: IncrementalDataRecord | undefined, ): Promise> { const stream = getStreamValues(exeContext, fieldGroup, path); let containsPromise = false; @@ -1072,14 +1072,14 @@ async function completeAsyncIteratorValue( // eslint-disable-next-line @typescript-eslint/no-floating-promises executeStreamAsyncIterator( index, - iterator, + asyncIterator, exeContext, fieldGroup, info, itemType, path, stream.label, - asyncPayloadRecord, + incrementalDataRecord, ); break; } @@ -1088,7 +1088,7 @@ async function completeAsyncIteratorValue( let iteration; try { // eslint-disable-next-line no-await-in-loop - iteration = await iterator.next(); + iteration = await asyncIterator.next(); if (iteration.done) { break; } @@ -1099,7 +1099,7 @@ async function completeAsyncIteratorValue( itemType, fieldGroup, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ); completedResults.push(null); break; @@ -1114,7 +1114,7 @@ async function completeAsyncIteratorValue( fieldGroup, info, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ) ) { containsPromise = true; @@ -1135,12 +1135,12 @@ function completeListValue( info: GraphQLResolveInfo, path: Path, result: unknown, - asyncPayloadRecord?: AsyncPayloadRecord, + incrementalDataRecord: IncrementalDataRecord | undefined, ): PromiseOrValue> { const itemType = returnType.ofType; if (isAsyncIterable(result)) { - const iterator = result[Symbol.asyncIterator](); + const asyncIterator = result[Symbol.asyncIterator](); return completeAsyncIteratorValue( exeContext, @@ -1148,8 +1148,8 @@ function completeListValue( fieldGroup, info, path, - iterator, - asyncPayloadRecord, + asyncIterator, + incrementalDataRecord, ); } @@ -1164,7 +1164,7 @@ function completeListValue( // This is specified as a simple map, however we're optimizing the path // where the list contains no Promises by avoiding creating another Promise. let containsPromise = false; - let previousAsyncPayloadRecord = asyncPayloadRecord; + let previousIncrementalDataRecord = incrementalDataRecord; const completedResults: Array = []; let index = 0; for (const item of result) { @@ -1177,7 +1177,7 @@ function completeListValue( typeof stream.initialCount === 'number' && index >= stream.initialCount ) { - previousAsyncPayloadRecord = executeStreamField( + previousIncrementalDataRecord = executeStreamField( path, itemPath, item, @@ -1186,7 +1186,7 @@ function completeListValue( info, itemType, stream.label, - previousAsyncPayloadRecord, + previousIncrementalDataRecord, ); index++; continue; @@ -1201,7 +1201,7 @@ function completeListValue( fieldGroup, info, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ) ) { containsPromise = true; @@ -1226,7 +1226,7 @@ function completeListItemValue( fieldGroup: FieldGroup, info: GraphQLResolveInfo, itemPath: Path, - asyncPayloadRecord?: AsyncPayloadRecord, + incrementalDataRecord: IncrementalDataRecord | undefined, ): boolean { if (isPromise(item)) { completedResults.push( @@ -1237,7 +1237,7 @@ function completeListItemValue( info, itemPath, item, - asyncPayloadRecord, + incrementalDataRecord, ), ); @@ -1252,7 +1252,7 @@ function completeListItemValue( info, itemPath, item, - asyncPayloadRecord, + incrementalDataRecord, ); if (isPromise(completedItem)) { @@ -1266,9 +1266,9 @@ function completeListItemValue( itemType, fieldGroup, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ); - filterSubsequentPayloads(exeContext, itemPath, asyncPayloadRecord); + filterSubsequentPayloads(exeContext, itemPath, incrementalDataRecord); return null; }), ); @@ -1284,9 +1284,9 @@ function completeListItemValue( itemType, fieldGroup, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ); - filterSubsequentPayloads(exeContext, itemPath, asyncPayloadRecord); + filterSubsequentPayloads(exeContext, itemPath, incrementalDataRecord); completedResults.push(null); } @@ -1322,7 +1322,7 @@ function completeAbstractValue( info: GraphQLResolveInfo, path: Path, result: unknown, - asyncPayloadRecord?: AsyncPayloadRecord, + incrementalDataRecord: IncrementalDataRecord | undefined, ): PromiseOrValue> { const resolveTypeFn = returnType.resolveType ?? exeContext.typeResolver; const contextValue = exeContext.contextValue; @@ -1344,7 +1344,7 @@ function completeAbstractValue( info, path, result, - asyncPayloadRecord, + incrementalDataRecord, ), ); } @@ -1363,7 +1363,7 @@ function completeAbstractValue( info, path, result, - asyncPayloadRecord, + incrementalDataRecord, ); } @@ -1432,7 +1432,7 @@ function completeObjectValue( info: GraphQLResolveInfo, path: Path, result: unknown, - asyncPayloadRecord?: AsyncPayloadRecord, + incrementalDataRecord: IncrementalDataRecord | undefined, ): PromiseOrValue> { // If there is an isTypeOf predicate function, call it with the // current result. If isTypeOf returns false, then raise an error rather @@ -1451,7 +1451,7 @@ function completeObjectValue( fieldGroup, path, result, - asyncPayloadRecord, + incrementalDataRecord, ); }); } @@ -1467,7 +1467,7 @@ function completeObjectValue( fieldGroup, path, result, - asyncPayloadRecord, + incrementalDataRecord, ); } @@ -1488,7 +1488,7 @@ function collectAndExecuteSubfields( fieldGroup: FieldGroup, path: Path, result: unknown, - asyncPayloadRecord?: AsyncPayloadRecord, + incrementalDataRecord: IncrementalDataRecord | undefined, ): PromiseOrValue> { // Collect sub-fields to execute to complete this value. const { groupedFieldSet: subGroupedFieldSet, patches: subPatches } = @@ -1500,7 +1500,7 @@ function collectAndExecuteSubfields( result, path, subGroupedFieldSet, - asyncPayloadRecord, + incrementalDataRecord, ); for (const subPatch of subPatches) { @@ -1512,7 +1512,7 @@ function collectAndExecuteSubfields( subPatchGroupedFieldSet, label, path, - asyncPayloadRecord, + incrementalDataRecord, ); } @@ -1814,9 +1814,9 @@ function executeDeferredFragment( fields: GroupedFieldSet, label?: string, path?: Path, - parentContext?: AsyncPayloadRecord, + parentContext?: IncrementalDataRecord, ): void { - const asyncPayloadRecord = new DeferredFragmentRecord({ + const incrementalDataRecord = new DeferredFragmentRecord({ label, path, parentContext, @@ -1830,20 +1830,20 @@ function executeDeferredFragment( sourceValue, path, fields, - asyncPayloadRecord, + incrementalDataRecord, ); if (isPromise(promiseOrData)) { promiseOrData = promiseOrData.then(null, (e) => { - asyncPayloadRecord.errors.push(e); + incrementalDataRecord.errors.push(e); return null; }); } } catch (e) { - asyncPayloadRecord.errors.push(e); + incrementalDataRecord.errors.push(e); promiseOrData = null; } - asyncPayloadRecord.addData(promiseOrData); + incrementalDataRecord.addData(promiseOrData); } function executeStreamField( @@ -1855,9 +1855,9 @@ function executeStreamField( info: GraphQLResolveInfo, itemType: GraphQLOutputType, label?: string, - parentContext?: AsyncPayloadRecord, -): AsyncPayloadRecord { - const asyncPayloadRecord = new StreamRecord({ + parentContext?: IncrementalDataRecord, +): IncrementalDataRecord { + const incrementalDataRecord = new StreamItemsRecord({ label, path: itemPath, parentContext, @@ -1871,18 +1871,18 @@ function executeStreamField( info, itemPath, item, - asyncPayloadRecord, + incrementalDataRecord, ).then( (value) => [value], (error) => { - asyncPayloadRecord.errors.push(error); - filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); + incrementalDataRecord.errors.push(error); + filterSubsequentPayloads(exeContext, path, incrementalDataRecord); return null; }, ); - asyncPayloadRecord.addItems(completedItems); - return asyncPayloadRecord; + incrementalDataRecord.addItems(completedItems); + return incrementalDataRecord; } let completedItem: PromiseOrValue; @@ -1895,7 +1895,7 @@ function executeStreamField( info, itemPath, item, - asyncPayloadRecord, + incrementalDataRecord, ); } catch (rawError) { handleFieldError( @@ -1904,16 +1904,16 @@ function executeStreamField( itemType, fieldGroup, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ); completedItem = null; - filterSubsequentPayloads(exeContext, itemPath, asyncPayloadRecord); + filterSubsequentPayloads(exeContext, itemPath, incrementalDataRecord); } } catch (error) { - asyncPayloadRecord.errors.push(error); - filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); - asyncPayloadRecord.addItems(null); - return asyncPayloadRecord; + incrementalDataRecord.errors.push(error); + filterSubsequentPayloads(exeContext, path, incrementalDataRecord); + incrementalDataRecord.addItems(null); + return incrementalDataRecord; } if (isPromise(completedItem)) { @@ -1925,42 +1925,42 @@ function executeStreamField( itemType, fieldGroup, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ); - filterSubsequentPayloads(exeContext, itemPath, asyncPayloadRecord); + filterSubsequentPayloads(exeContext, itemPath, incrementalDataRecord); return null; }) .then( (value) => [value], (error) => { - asyncPayloadRecord.errors.push(error); - filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); + incrementalDataRecord.errors.push(error); + filterSubsequentPayloads(exeContext, path, incrementalDataRecord); return null; }, ); - asyncPayloadRecord.addItems(completedItems); - return asyncPayloadRecord; + incrementalDataRecord.addItems(completedItems); + return incrementalDataRecord; } - asyncPayloadRecord.addItems([completedItem]); - return asyncPayloadRecord; + incrementalDataRecord.addItems([completedItem]); + return incrementalDataRecord; } async function executeStreamAsyncIteratorItem( - iterator: AsyncIterator, + asyncIterator: AsyncIterator, exeContext: ExecutionContext, fieldGroup: FieldGroup, info: GraphQLResolveInfo, itemType: GraphQLOutputType, - asyncPayloadRecord: StreamRecord, + incrementalDataRecord: StreamItemsRecord, itemPath: Path, ): Promise> { let item; try { - const { value, done } = await iterator.next(); + const { value, done } = await asyncIterator.next(); if (done) { - asyncPayloadRecord.setIsCompletedIterator(); + incrementalDataRecord.setIsCompletedAsyncIterator(); return { done, value: undefined }; } item = value; @@ -1971,9 +1971,9 @@ async function executeStreamAsyncIteratorItem( itemType, fieldGroup, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ); - // don't continue if iterator throws + // don't continue if async iterator throws return { done: true, value: null }; } let completedItem; @@ -1985,7 +1985,7 @@ async function executeStreamAsyncIteratorItem( info, itemPath, item, - asyncPayloadRecord, + incrementalDataRecord, ); if (isPromise(completedItem)) { @@ -1996,9 +1996,9 @@ async function executeStreamAsyncIteratorItem( itemType, fieldGroup, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ); - filterSubsequentPayloads(exeContext, itemPath, asyncPayloadRecord); + filterSubsequentPayloads(exeContext, itemPath, incrementalDataRecord); return null; }); } @@ -2010,34 +2010,34 @@ async function executeStreamAsyncIteratorItem( itemType, fieldGroup, itemPath, - asyncPayloadRecord, + incrementalDataRecord, ); - filterSubsequentPayloads(exeContext, itemPath, asyncPayloadRecord); + filterSubsequentPayloads(exeContext, itemPath, incrementalDataRecord); return { done: false, value: null }; } } async function executeStreamAsyncIterator( initialIndex: number, - iterator: AsyncIterator, + asyncIterator: AsyncIterator, exeContext: ExecutionContext, fieldGroup: FieldGroup, info: GraphQLResolveInfo, itemType: GraphQLOutputType, path: Path, label?: string, - parentContext?: AsyncPayloadRecord, + parentContext?: IncrementalDataRecord, ): Promise { let index = initialIndex; - let previousAsyncPayloadRecord = parentContext ?? undefined; + let previousIncrementalDataRecord = parentContext ?? undefined; // eslint-disable-next-line no-constant-condition while (true) { const itemPath = addPath(path, index, undefined); - const asyncPayloadRecord = new StreamRecord({ + const incrementalDataRecord = new StreamItemsRecord({ label, path: itemPath, - parentContext: previousAsyncPayloadRecord, - iterator, + parentContext: previousIncrementalDataRecord, + asyncIterator, exeContext, }); @@ -2045,21 +2045,21 @@ async function executeStreamAsyncIterator( try { // eslint-disable-next-line no-await-in-loop iteration = await executeStreamAsyncIteratorItem( - iterator, + asyncIterator, exeContext, fieldGroup, info, itemType, - asyncPayloadRecord, + incrementalDataRecord, itemPath, ); } catch (error) { - asyncPayloadRecord.errors.push(error); - filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); - asyncPayloadRecord.addItems(null); + incrementalDataRecord.errors.push(error); + filterSubsequentPayloads(exeContext, path, incrementalDataRecord); + incrementalDataRecord.addItems(null); // entire stream has errored and bubbled upwards - if (iterator?.return) { - iterator.return().catch(() => { + if (asyncIterator?.return) { + asyncIterator.return().catch(() => { // ignore errors }); } @@ -2073,8 +2073,8 @@ async function executeStreamAsyncIterator( completedItems = completedItem.then( (value) => [value], (error) => { - asyncPayloadRecord.errors.push(error); - filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); + incrementalDataRecord.errors.push(error); + filterSubsequentPayloads(exeContext, path, incrementalDataRecord); return null; }, ); @@ -2082,12 +2082,12 @@ async function executeStreamAsyncIterator( completedItems = [completedItem]; } - asyncPayloadRecord.addItems(completedItems); + incrementalDataRecord.addItems(completedItems); if (done) { break; } - previousAsyncPayloadRecord = asyncPayloadRecord; + previousIncrementalDataRecord = incrementalDataRecord; index++; } } @@ -2095,27 +2095,30 @@ async function executeStreamAsyncIterator( function filterSubsequentPayloads( exeContext: ExecutionContext, nullPath: Path, - currentAsyncRecord: AsyncPayloadRecord | undefined, + currentIncrementalDataRecord: IncrementalDataRecord | undefined, ): void { const nullPathArray = pathToArray(nullPath); - exeContext.subsequentPayloads.forEach((asyncRecord) => { - if (asyncRecord === currentAsyncRecord) { + exeContext.subsequentPayloads.forEach((incrementalDataRecord) => { + if (incrementalDataRecord === currentIncrementalDataRecord) { // don't remove payload from where error originates return; } for (let i = 0; i < nullPathArray.length; i++) { - if (asyncRecord.path[i] !== nullPathArray[i]) { - // asyncRecord points to a path unaffected by this payload + if (incrementalDataRecord.path[i] !== nullPathArray[i]) { + // incrementalDataRecord points to a path unaffected by this payload return; } } - // asyncRecord path points to nulled error field - if (isStreamPayload(asyncRecord) && asyncRecord.iterator?.return) { - asyncRecord.iterator.return().catch(() => { + // incrementalDataRecord path points to nulled error field + if ( + isStreamItemsRecord(incrementalDataRecord) && + incrementalDataRecord.asyncIterator?.return + ) { + incrementalDataRecord.asyncIterator.return().catch(() => { // ignore error }); } - exeContext.subsequentPayloads.delete(asyncRecord); + exeContext.subsequentPayloads.delete(incrementalDataRecord); }); } @@ -2123,30 +2126,30 @@ function getCompletedIncrementalResults( exeContext: ExecutionContext, ): Array { const incrementalResults: Array = []; - for (const asyncPayloadRecord of exeContext.subsequentPayloads) { + for (const incrementalDataRecord of exeContext.subsequentPayloads) { const incrementalResult: IncrementalResult = {}; - if (!asyncPayloadRecord.isCompleted) { + if (!incrementalDataRecord.isCompleted) { continue; } - exeContext.subsequentPayloads.delete(asyncPayloadRecord); - if (isStreamPayload(asyncPayloadRecord)) { - const items = asyncPayloadRecord.items; - if (asyncPayloadRecord.isCompletedIterator) { + exeContext.subsequentPayloads.delete(incrementalDataRecord); + if (isStreamItemsRecord(incrementalDataRecord)) { + const items = incrementalDataRecord.items; + if (incrementalDataRecord.isCompletedAsyncIterator) { // async iterable resolver just finished but there may be pending payloads continue; } (incrementalResult as IncrementalStreamResult).items = items; } else { - const data = asyncPayloadRecord.data; + const data = incrementalDataRecord.data; (incrementalResult as IncrementalDeferResult).data = data ?? null; } - incrementalResult.path = asyncPayloadRecord.path; - if (asyncPayloadRecord.label != null) { - incrementalResult.label = asyncPayloadRecord.label; + incrementalResult.path = incrementalDataRecord.path; + if (incrementalDataRecord.label != null) { + incrementalResult.label = incrementalDataRecord.label; } - if (asyncPayloadRecord.errors.length > 0) { - incrementalResult.errors = asyncPayloadRecord.errors; + if (incrementalDataRecord.errors.length > 0) { + incrementalResult.errors = incrementalDataRecord.errors; } incrementalResults.push(incrementalResult); } @@ -2193,12 +2196,12 @@ function yieldSubsequentPayloads( function returnStreamIterators() { const promises: Array>> = []; - exeContext.subsequentPayloads.forEach((asyncPayloadRecord) => { + exeContext.subsequentPayloads.forEach((incrementalDataRecord) => { if ( - isStreamPayload(asyncPayloadRecord) && - asyncPayloadRecord.iterator?.return + isStreamItemsRecord(incrementalDataRecord) && + incrementalDataRecord.asyncIterator?.return ) { - promises.push(asyncPayloadRecord.iterator.return()); + promises.push(incrementalDataRecord.asyncIterator.return()); } }); return Promise.all(promises); @@ -2233,14 +2236,14 @@ class DeferredFragmentRecord { path: Array; promise: Promise; data: ObjMap | null; - parentContext: AsyncPayloadRecord | undefined; + parentContext: IncrementalDataRecord | undefined; isCompleted: boolean; _exeContext: ExecutionContext; _resolve?: (arg: PromiseOrValue | null>) => void; constructor(opts: { label: string | undefined; path: Path | undefined; - parentContext: AsyncPayloadRecord | undefined; + parentContext: IncrementalDataRecord | undefined; exeContext: ExecutionContext; }) { this.type = 'defer'; @@ -2272,24 +2275,24 @@ class DeferredFragmentRecord { } } -class StreamRecord { +class StreamItemsRecord { type: 'stream'; errors: Array; label: string | undefined; path: Array; items: Array | null; promise: Promise; - parentContext: AsyncPayloadRecord | undefined; - iterator: AsyncIterator | undefined; - isCompletedIterator?: boolean; + parentContext: IncrementalDataRecord | undefined; + asyncIterator: AsyncIterator | undefined; + isCompletedAsyncIterator?: boolean; isCompleted: boolean; _exeContext: ExecutionContext; _resolve?: (arg: PromiseOrValue | null>) => void; constructor(opts: { label: string | undefined; path: Path | undefined; - iterator?: AsyncIterator; - parentContext: AsyncPayloadRecord | undefined; + asyncIterator?: AsyncIterator; + parentContext: IncrementalDataRecord | undefined; exeContext: ExecutionContext; }) { this.type = 'stream'; @@ -2297,7 +2300,7 @@ class StreamRecord { this.label = opts.label; this.path = pathToArray(opts.path); this.parentContext = opts.parentContext; - this.iterator = opts.iterator; + this.asyncIterator = opts.asyncIterator; this.errors = []; this._exeContext = opts.exeContext; this._exeContext.subsequentPayloads.add(this); @@ -2322,15 +2325,15 @@ class StreamRecord { this._resolve?.(items); } - setIsCompletedIterator() { - this.isCompletedIterator = true; + setIsCompletedAsyncIterator() { + this.isCompletedAsyncIterator = true; } } -type AsyncPayloadRecord = DeferredFragmentRecord | StreamRecord; +type IncrementalDataRecord = DeferredFragmentRecord | StreamItemsRecord; -function isStreamPayload( - asyncPayload: AsyncPayloadRecord, -): asyncPayload is StreamRecord { - return asyncPayload.type === 'stream'; +function isStreamItemsRecord( + incrementalDataRecord: IncrementalDataRecord, +): incrementalDataRecord is StreamItemsRecord { + return incrementalDataRecord.type === 'stream'; }