@@ -129,7 +129,7 @@ export interface ExecutionContext {
129
129
typeResolver : GraphQLTypeResolver < any , any > ;
130
130
subscribeFieldResolver : GraphQLFieldResolver < any , any > ;
131
131
errors : Array < GraphQLError > ;
132
- publisher : IncrementalPublisher ;
132
+ incrementalPublisher : IncrementalPublisher ;
133
133
}
134
134
135
135
/**
@@ -289,21 +289,21 @@ function executeImpl(
289
289
// Errors from sub-fields of a NonNull type may propagate to the top level,
290
290
// at which point we still log the error and null the parent field, which
291
291
// in this case is the entire response.
292
- const { publisher , errors } = exeContext ;
292
+ const { incrementalPublisher , errors } = exeContext ;
293
293
try {
294
294
const result = executeOperation ( exeContext ) ;
295
295
if ( isPromise ( result ) ) {
296
296
return result . then (
297
297
( data ) => {
298
298
const initialResult = buildResponse ( data , errors ) ;
299
- publisher . publishInitial ( ) ;
300
- if ( publisher . hasNext ( ) ) {
299
+ incrementalPublisher . publishInitial ( ) ;
300
+ if ( incrementalPublisher . hasNext ( ) ) {
301
301
return {
302
302
initialResult : {
303
303
...initialResult ,
304
304
hasNext : true ,
305
305
} ,
306
- subsequentResults : publisher . subscribe ( ) ,
306
+ subsequentResults : incrementalPublisher . subscribe ( ) ,
307
307
} ;
308
308
}
309
309
return initialResult ;
@@ -315,14 +315,14 @@ function executeImpl(
315
315
) ;
316
316
}
317
317
const initialResult = buildResponse ( result , errors ) ;
318
- publisher . publishInitial ( ) ;
319
- if ( publisher . hasNext ( ) ) {
318
+ incrementalPublisher . publishInitial ( ) ;
319
+ if ( incrementalPublisher . hasNext ( ) ) {
320
320
return {
321
321
initialResult : {
322
322
...initialResult ,
323
323
hasNext : true ,
324
324
} ,
325
- subsequentResults : publisher . subscribe ( ) ,
325
+ subsequentResults : incrementalPublisher . subscribe ( ) ,
326
326
} ;
327
327
}
328
328
return initialResult ;
@@ -444,7 +444,7 @@ export function buildExecutionContext(
444
444
fieldResolver : fieldResolver ?? defaultFieldResolver ,
445
445
typeResolver : typeResolver ?? defaultTypeResolver ,
446
446
subscribeFieldResolver : subscribeFieldResolver ?? defaultFieldResolver ,
447
- publisher : new IncrementalPublisher ( ) ,
447
+ incrementalPublisher : new IncrementalPublisher ( ) ,
448
448
errors : [ ] ,
449
449
} ;
450
450
}
@@ -456,7 +456,7 @@ function buildPerEventExecutionContext(
456
456
return {
457
457
...exeContext ,
458
458
rootValue : payload ,
459
- // no need to update publisher , incremental delivery is not supported for subscriptions
459
+ // no need to update incrementalPublisher , incremental delivery is not supported for subscriptions
460
460
errors : [ ] ,
461
461
} ;
462
462
}
@@ -709,7 +709,7 @@ function executeField(
709
709
path ,
710
710
incrementalDataRecord ,
711
711
) ;
712
- exeContext . publisher . filter ( path , incrementalDataRecord ) ;
712
+ exeContext . incrementalPublisher . filter ( path , incrementalDataRecord ) ;
713
713
return null ;
714
714
} ) ;
715
715
}
@@ -723,7 +723,7 @@ function executeField(
723
723
path ,
724
724
incrementalDataRecord ,
725
725
) ;
726
- exeContext . publisher . filter ( path , incrementalDataRecord ) ;
726
+ exeContext . incrementalPublisher . filter ( path , incrementalDataRecord ) ;
727
727
return null ;
728
728
}
729
729
}
@@ -924,7 +924,7 @@ async function completePromisedValue(
924
924
path ,
925
925
incrementalDataRecord ,
926
926
) ;
927
- exeContext . publisher . filter ( path , incrementalDataRecord ) ;
927
+ exeContext . incrementalPublisher . filter ( path , incrementalDataRecord ) ;
928
928
return null ;
929
929
}
930
930
}
@@ -1200,7 +1200,10 @@ function completeListItemValue(
1200
1200
itemPath ,
1201
1201
incrementalDataRecord ,
1202
1202
) ;
1203
- exeContext . publisher . filter ( itemPath , incrementalDataRecord ) ;
1203
+ exeContext . incrementalPublisher . filter (
1204
+ itemPath ,
1205
+ incrementalDataRecord ,
1206
+ ) ;
1204
1207
return null ;
1205
1208
} ) ,
1206
1209
) ;
@@ -1218,7 +1221,7 @@ function completeListItemValue(
1218
1221
itemPath ,
1219
1222
incrementalDataRecord ,
1220
1223
) ;
1221
- exeContext . publisher . filter ( itemPath , incrementalDataRecord ) ;
1224
+ exeContext . incrementalPublisher . filter ( itemPath , incrementalDataRecord ) ;
1222
1225
completedResults . push ( null ) ;
1223
1226
}
1224
1227
@@ -1748,12 +1751,13 @@ function executeDeferredFragment(
1748
1751
path ?: Path ,
1749
1752
parentContext ?: IncrementalDataRecord ,
1750
1753
) : void {
1751
- const publisher = exeContext . publisher ;
1752
- const incrementalDataRecord = publisher . prepareNewDeferredFragmentRecord ( {
1753
- label,
1754
- path,
1755
- parentContext,
1756
- } ) ;
1754
+ const incrementalPublisher = exeContext . incrementalPublisher ;
1755
+ const incrementalDataRecord =
1756
+ incrementalPublisher . prepareNewDeferredFragmentRecord ( {
1757
+ label,
1758
+ path,
1759
+ parentContext,
1760
+ } ) ;
1757
1761
1758
1762
let promiseOrData ;
1759
1763
try {
@@ -1769,24 +1773,30 @@ function executeDeferredFragment(
1769
1773
if ( isPromise ( promiseOrData ) ) {
1770
1774
promiseOrData = promiseOrData . then (
1771
1775
( resolved ) =>
1772
- publisher . completeDeferredFragmentRecord (
1776
+ incrementalPublisher . completeDeferredFragmentRecord (
1773
1777
incrementalDataRecord ,
1774
1778
resolved ,
1775
1779
) ,
1776
1780
( e ) => {
1777
- publisher . addFieldError ( incrementalDataRecord , e ) ;
1778
- publisher . completeDeferredFragmentRecord ( incrementalDataRecord , null ) ;
1781
+ incrementalPublisher . addFieldError ( incrementalDataRecord , e ) ;
1782
+ incrementalPublisher . completeDeferredFragmentRecord (
1783
+ incrementalDataRecord ,
1784
+ null ,
1785
+ ) ;
1779
1786
} ,
1780
1787
) ;
1781
1788
} else {
1782
- publisher . completeDeferredFragmentRecord (
1789
+ incrementalPublisher . completeDeferredFragmentRecord (
1783
1790
incrementalDataRecord ,
1784
1791
promiseOrData ,
1785
1792
) ;
1786
1793
}
1787
1794
} catch ( e ) {
1788
- publisher . addFieldError ( incrementalDataRecord , e ) ;
1789
- publisher . completeDeferredFragmentRecord ( incrementalDataRecord , null ) ;
1795
+ incrementalPublisher . addFieldError ( incrementalDataRecord , e ) ;
1796
+ incrementalPublisher . completeDeferredFragmentRecord (
1797
+ incrementalDataRecord ,
1798
+ null ,
1799
+ ) ;
1790
1800
}
1791
1801
}
1792
1802
@@ -1801,12 +1811,13 @@ function executeStreamField(
1801
1811
label ?: string ,
1802
1812
parentContext ?: IncrementalDataRecord ,
1803
1813
) : IncrementalDataRecord {
1804
- const publisher = exeContext . publisher ;
1805
- const incrementalDataRecord = publisher . prepareNewStreamItemsRecord ( {
1806
- label,
1807
- path : itemPath ,
1808
- parentContext,
1809
- } ) ;
1814
+ const incrementalPublisher = exeContext . incrementalPublisher ;
1815
+ const incrementalDataRecord =
1816
+ incrementalPublisher . prepareNewStreamItemsRecord ( {
1817
+ label,
1818
+ path : itemPath ,
1819
+ parentContext,
1820
+ } ) ;
1810
1821
1811
1822
if ( isPromise ( item ) ) {
1812
1823
completePromisedValue (
@@ -1819,11 +1830,16 @@ function executeStreamField(
1819
1830
incrementalDataRecord ,
1820
1831
) . then (
1821
1832
( value ) =>
1822
- publisher . completeStreamItemsRecord ( incrementalDataRecord , [ value ] ) ,
1833
+ incrementalPublisher . completeStreamItemsRecord ( incrementalDataRecord , [
1834
+ value ,
1835
+ ] ) ,
1823
1836
( error ) => {
1824
- publisher . addFieldError ( incrementalDataRecord , error ) ;
1825
- publisher . filter ( path , incrementalDataRecord ) ;
1826
- publisher . completeStreamItemsRecord ( incrementalDataRecord , null ) ;
1837
+ incrementalPublisher . addFieldError ( incrementalDataRecord , error ) ;
1838
+ incrementalPublisher . filter ( path , incrementalDataRecord ) ;
1839
+ incrementalPublisher . completeStreamItemsRecord (
1840
+ incrementalDataRecord ,
1841
+ null ,
1842
+ ) ;
1827
1843
return null ;
1828
1844
} ,
1829
1845
) ;
@@ -1853,12 +1869,12 @@ function executeStreamField(
1853
1869
incrementalDataRecord ,
1854
1870
) ;
1855
1871
completedItem = null ;
1856
- exeContext . publisher . filter ( itemPath , incrementalDataRecord ) ;
1872
+ exeContext . incrementalPublisher . filter ( itemPath , incrementalDataRecord ) ;
1857
1873
}
1858
1874
} catch ( error ) {
1859
- publisher . addFieldError ( incrementalDataRecord , error ) ;
1860
- publisher . filter ( path , incrementalDataRecord ) ;
1861
- publisher . completeStreamItemsRecord ( incrementalDataRecord , null ) ;
1875
+ incrementalPublisher . addFieldError ( incrementalDataRecord , error ) ;
1876
+ incrementalPublisher . filter ( path , incrementalDataRecord ) ;
1877
+ incrementalPublisher . completeStreamItemsRecord ( incrementalDataRecord , null ) ;
1862
1878
return incrementalDataRecord ;
1863
1879
}
1864
1880
@@ -1873,23 +1889,31 @@ function executeStreamField(
1873
1889
itemPath ,
1874
1890
incrementalDataRecord ,
1875
1891
) ;
1876
- exeContext . publisher . filter ( itemPath , incrementalDataRecord ) ;
1892
+ exeContext . incrementalPublisher . filter ( itemPath , incrementalDataRecord ) ;
1877
1893
return null ;
1878
1894
} )
1879
1895
. then (
1880
1896
( value ) =>
1881
- publisher . completeStreamItemsRecord ( incrementalDataRecord , [ value ] ) ,
1897
+ incrementalPublisher . completeStreamItemsRecord (
1898
+ incrementalDataRecord ,
1899
+ [ value ] ,
1900
+ ) ,
1882
1901
( error ) => {
1883
- publisher . addFieldError ( incrementalDataRecord , error ) ;
1884
- publisher . filter ( path , incrementalDataRecord ) ;
1885
- publisher . completeStreamItemsRecord ( incrementalDataRecord , null ) ;
1902
+ incrementalPublisher . addFieldError ( incrementalDataRecord , error ) ;
1903
+ incrementalPublisher . filter ( path , incrementalDataRecord ) ;
1904
+ incrementalPublisher . completeStreamItemsRecord (
1905
+ incrementalDataRecord ,
1906
+ null ,
1907
+ ) ;
1886
1908
} ,
1887
1909
) ;
1888
1910
1889
1911
return incrementalDataRecord ;
1890
1912
}
1891
1913
1892
- publisher . completeStreamItemsRecord ( incrementalDataRecord , [ completedItem ] ) ;
1914
+ incrementalPublisher . completeStreamItemsRecord ( incrementalDataRecord , [
1915
+ completedItem ,
1916
+ ] ) ;
1893
1917
return incrementalDataRecord ;
1894
1918
}
1895
1919
@@ -1908,7 +1932,9 @@ async function executeStreamAsyncIteratorItem(
1908
1932
const { value, done } = await asyncIterator . next ( ) ;
1909
1933
1910
1934
if ( done ) {
1911
- exeContext . publisher . setIsCompletedAsyncIterator ( incrementalDataRecord ) ;
1935
+ exeContext . incrementalPublisher . setIsCompletedAsyncIterator (
1936
+ incrementalDataRecord ,
1937
+ ) ;
1912
1938
return { done : true , value : undefined } ;
1913
1939
}
1914
1940
item = value ;
@@ -1937,7 +1963,7 @@ async function executeStreamAsyncIteratorItem(
1937
1963
itemPath ,
1938
1964
incrementalDataRecord ,
1939
1965
) ;
1940
- exeContext . publisher . filter ( itemPath , incrementalDataRecord ) ;
1966
+ exeContext . incrementalPublisher . filter ( itemPath , incrementalDataRecord ) ;
1941
1967
return null ;
1942
1968
} ) ;
1943
1969
}
@@ -1951,7 +1977,7 @@ async function executeStreamAsyncIteratorItem(
1951
1977
itemPath ,
1952
1978
incrementalDataRecord ,
1953
1979
) ;
1954
- exeContext . publisher . filter ( itemPath , incrementalDataRecord ) ;
1980
+ exeContext . incrementalPublisher . filter ( itemPath , incrementalDataRecord ) ;
1955
1981
return { done : false , value : null } ;
1956
1982
}
1957
1983
}
@@ -1967,18 +1993,19 @@ async function executeStreamAsyncIterator(
1967
1993
label ?: string ,
1968
1994
parentContext ?: IncrementalDataRecord ,
1969
1995
) : Promise < void > {
1970
- const publisher = exeContext . publisher ;
1996
+ const incrementalPublisher = exeContext . incrementalPublisher ;
1971
1997
let index = initialIndex ;
1972
1998
let previousIncrementalDataRecord = parentContext ?? undefined ;
1973
1999
// eslint-disable-next-line no-constant-condition
1974
2000
while ( true ) {
1975
2001
const itemPath = addPath ( path , index , undefined ) ;
1976
- const incrementalDataRecord = publisher . prepareNewStreamItemsRecord ( {
1977
- label,
1978
- path : itemPath ,
1979
- parentContext : previousIncrementalDataRecord ,
1980
- asyncIterator,
1981
- } ) ;
2002
+ const incrementalDataRecord =
2003
+ incrementalPublisher . prepareNewStreamItemsRecord ( {
2004
+ label,
2005
+ path : itemPath ,
2006
+ parentContext : previousIncrementalDataRecord ,
2007
+ asyncIterator,
2008
+ } ) ;
1982
2009
1983
2010
let iteration ;
1984
2011
try {
@@ -1994,9 +2021,12 @@ async function executeStreamAsyncIterator(
1994
2021
itemPath ,
1995
2022
) ;
1996
2023
} catch ( error ) {
1997
- publisher . addFieldError ( incrementalDataRecord , error ) ;
1998
- publisher . filter ( path , incrementalDataRecord ) ;
1999
- publisher . completeStreamItemsRecord ( incrementalDataRecord , null ) ;
2024
+ incrementalPublisher . addFieldError ( incrementalDataRecord , error ) ;
2025
+ incrementalPublisher . filter ( path , incrementalDataRecord ) ;
2026
+ incrementalPublisher . completeStreamItemsRecord (
2027
+ incrementalDataRecord ,
2028
+ null ,
2029
+ ) ;
2000
2030
// entire stream has errored and bubbled upwards
2001
2031
if ( asyncIterator ?. return ) {
2002
2032
asyncIterator . return ( ) . catch ( ( ) => {
@@ -2011,15 +2041,21 @@ async function executeStreamAsyncIterator(
2011
2041
if ( isPromise ( completedItem ) ) {
2012
2042
completedItem . then (
2013
2043
( value ) =>
2014
- publisher . completeStreamItemsRecord ( incrementalDataRecord , [ value ] ) ,
2044
+ incrementalPublisher . completeStreamItemsRecord (
2045
+ incrementalDataRecord ,
2046
+ [ value ] ,
2047
+ ) ,
2015
2048
( error ) => {
2016
- publisher . addFieldError ( incrementalDataRecord , error ) ;
2017
- publisher . filter ( path , incrementalDataRecord ) ;
2018
- publisher . completeStreamItemsRecord ( incrementalDataRecord , null ) ;
2049
+ incrementalPublisher . addFieldError ( incrementalDataRecord , error ) ;
2050
+ incrementalPublisher . filter ( path , incrementalDataRecord ) ;
2051
+ incrementalPublisher . completeStreamItemsRecord (
2052
+ incrementalDataRecord ,
2053
+ null ,
2054
+ ) ;
2019
2055
} ,
2020
2056
) ;
2021
2057
} else {
2022
- publisher . completeStreamItemsRecord ( incrementalDataRecord , [
2058
+ incrementalPublisher . completeStreamItemsRecord ( incrementalDataRecord , [
2023
2059
completedItem ,
2024
2060
] ) ;
2025
2061
}
0 commit comments