Skip to content

Commit

Permalink
refactor(incremental): introduce BoxedPromiseOrValue to save resolved…
Browse files Browse the repository at this point in the history
… promise results
  • Loading branch information
yaacovCR committed Jun 3, 2024
1 parent acc4fc7 commit dfd48fb
Show file tree
Hide file tree
Showing 7 changed files with 181 additions and 237 deletions.
2 changes: 1 addition & 1 deletion src/execution/IncrementalGraph.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ export class IncrementalGraph {
this._newPending.clear();

for (const incrementalDataRecord of this._newIncrementalDataRecords) {
const result = incrementalDataRecord.result;
const result = incrementalDataRecord.result.value;
if (isPromise(result)) {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
result.then((resolved) => this._enqueue(resolved));
Expand Down
60 changes: 10 additions & 50 deletions src/execution/__tests__/defer-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -367,20 +367,14 @@ describe('Execute: defer directive', () => {
},
id: '0',
},
],
completed: [{ id: '0' }],
hasNext: true,
},
{
incremental: [
{
data: {
friends: [{ name: 'Han' }, { name: 'Leia' }, { name: 'C-3PO' }],
},
id: '1',
},
],
completed: [{ id: '1' }],
completed: [{ id: '0' }, { id: '1' }],
hasNext: false,
},
]);
Expand Down Expand Up @@ -732,20 +726,14 @@ describe('Execute: defer directive', () => {
},
id: '0',
},
],
completed: [{ id: '0' }],
hasNext: true,
},
{
incremental: [
{
data: {
id: '1',
},
id: '1',
},
],
completed: [{ id: '1' }],
completed: [{ id: '0' }, { id: '1' }],
hasNext: false,
},
]);
Expand Down Expand Up @@ -909,20 +897,14 @@ describe('Execute: defer directive', () => {
},
id: '0',
},
],
completed: [{ id: '0' }],
hasNext: true,
},
{
incremental: [
{
data: {
bar: 'bar',
},
id: '1',
},
],
completed: [{ id: '1' }],
completed: [{ id: '0' }, { id: '1' }],
hasNext: false,
},
]);
Expand Down Expand Up @@ -983,37 +965,27 @@ describe('Execute: defer directive', () => {
hasNext: true,
},
{
pending: [{ id: '1', path: ['hero', 'nestedObject'] }],
pending: [
{ id: '1', path: ['hero', 'nestedObject'] },
{ id: '2', path: ['hero', 'nestedObject', 'deeperObject'] },
],
incremental: [
{
data: { bar: 'bar' },
id: '0',
subPath: ['nestedObject', 'deeperObject'],
},
],
completed: [{ id: '0' }],
hasNext: true,
},
{
pending: [{ id: '2', path: ['hero', 'nestedObject', 'deeperObject'] }],
incremental: [
{
data: { baz: 'baz' },
id: '1',
subPath: ['deeperObject'],
},
],
completed: [{ id: '1' }],
hasNext: true,
},
{
incremental: [
{
data: { bak: 'bak' },
id: '2',
},
],
completed: [{ id: '2' }],
completed: [{ id: '0' }, { id: '1' }, { id: '2' }],
hasNext: false,
},
]);
Expand Down Expand Up @@ -2080,17 +2052,11 @@ describe('Execute: defer directive', () => {
data: { name: 'slow', friends: [{}, {}, {}] },
id: '0',
},
],
completed: [{ id: '0' }],
hasNext: true,
},
{
incremental: [
{ data: { name: 'Han' }, id: '1' },
{ data: { name: 'Leia' }, id: '2' },
{ data: { name: 'C-3PO' }, id: '3' },
],
completed: [{ id: '1' }, { id: '2' }, { id: '3' }],
completed: [{ id: '0' }, { id: '1' }, { id: '2' }, { id: '3' }],
hasNext: false,
},
]);
Expand Down Expand Up @@ -2136,17 +2102,11 @@ describe('Execute: defer directive', () => {
},
id: '0',
},
],
completed: [{ id: '0' }],
hasNext: true,
},
{
incremental: [
{ data: { name: 'Han' }, id: '1' },
{ data: { name: 'Leia' }, id: '2' },
{ data: { name: 'C-3PO' }, id: '3' },
],
completed: [{ id: '1' }, { id: '2' }, { id: '3' }],
completed: [{ id: '0' }, { id: '1' }, { id: '2' }, { id: '3' }],
hasNext: false,
},
]);
Expand Down
Loading

0 comments on commit dfd48fb

Please sign in to comment.