Skip to content

Commit

Permalink
popping debug nodes
Browse files Browse the repository at this point in the history
  • Loading branch information
JoviDeCroock committed Apr 23, 2020
1 parent b3c745d commit 972422d
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 6 deletions.
2 changes: 2 additions & 0 deletions exchanges/graphcache/src/helpers/help.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ const cache = new Set<string>();

export const currentDebugStack: string[] = [];

export const popDebugNode = () => currentDebugStack.pop();

export const pushDebugNode = (typename: void | string, node: DebugNode) => {
let identifier = '';
if (node.kind === Kind.INLINE_FRAGMENT) {
Expand Down
18 changes: 14 additions & 4 deletions exchanges/graphcache/src/operations/query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import {
} from '../store';

import * as InMemoryData from '../store/data';
import { warn, pushDebugNode } from '../helpers/help';
import { warn, pushDebugNode, popDebugNode } from '../helpers/help';

import {
Context,
Expand Down Expand Up @@ -94,6 +94,10 @@ export const read = (
? readRoot(ctx, rootKey, rootSelect, data)
: readSelection(ctx, rootKey, rootSelect, data);

if (process.env.NODE_ENV !== 'production') {
popDebugNode();
}

return {
dependencies: getCurrentDependencies(),
partial: data === undefined ? false : ctx.partial,
Expand Down Expand Up @@ -209,9 +213,15 @@ export const readFragment = (
entityKey
);

return (
readSelection(ctx, entityKey, getSelectionSet(fragment), {} as Data) || null
);
const result =
readSelection(ctx, entityKey, getSelectionSet(fragment), {} as Data) ||
null;

if (process.env.NODE_ENV !== 'production') {
popDebugNode();
}

return result;
};

const readSelection = (
Expand Down
6 changes: 5 additions & 1 deletion exchanges/graphcache/src/operations/shared.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
SelectionSet,
isFieldNode,
} from '../ast';
import { warn, pushDebugNode } from '../helpers/help';
import { warn, pushDebugNode, popDebugNode } from '../helpers/help';

import { hasField } from '../store/data';
import { Store, keyOfField } from '../store';
Expand Down Expand Up @@ -151,6 +151,10 @@ export class SelectionIterator {
this.indexStack.push(0);
this.selectionStack.push(getSelectionSet(fragmentNode));
}

if (process.env.NODE_ENV !== 'production') {
popDebugNode();

This comment has been minimized.

Copy link
@kitten

kitten Apr 24, 2020

Member

This probably needs to go on line 120?

This comment has been minimized.

Copy link
@JoviDeCroock

JoviDeCroock Apr 24, 2020

Author Collaborator

Hmm, it should only pop when it's a fragment, no?

}
}

continue;
Expand Down
17 changes: 16 additions & 1 deletion exchanges/graphcache/src/operations/write.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
getFieldAlias,
} from '../ast';

import { invariant, warn, pushDebugNode } from '../helpers/help';
import { invariant, warn, pushDebugNode, popDebugNode } from '../helpers/help';

import { NullArray, Variables, Data, Link, OperationRequest } from '../types';

Expand Down Expand Up @@ -75,6 +75,11 @@ export const startWrite = (
}

writeSelection(ctx, operationName, getSelectionSet(operation), data);

if (process.env.NODE_ENV !== 'production') {
popDebugNode();
}

return result;
};

Expand Down Expand Up @@ -113,6 +118,11 @@ export const writeOptimistic = (
);

writeSelection(ctx, operationName, getSelectionSet(operation), result.data!);

if (process.env.NODE_ENV !== 'production') {
popDebugNode();
}

clearDataState();
return result;
};
Expand Down Expand Up @@ -160,6 +170,10 @@ export const writeFragment = (
);

writeSelection(ctx, entityKey, getSelectionSet(fragment), writeData);

if (process.env.NODE_ENV !== 'production') {
popDebugNode();
}
};

const writeSelection = (
Expand Down Expand Up @@ -221,6 +235,7 @@ const writeSelection = (

if (ctx.optimistic && isRoot) {
const resolver = ctx.store.optimisticMutations[fieldName];

if (!resolver) continue;
// We have to update the context to reflect up-to-date ResolveInfo
updateContext(ctx, typename, typename, fieldKey, fieldName);
Expand Down

0 comments on commit 972422d

Please sign in to comment.