diff --git a/src/cache/core/types/Cache.ts b/src/cache/core/types/Cache.ts index 911e15c2d66..596a4cd5ceb 100644 --- a/src/cache/core/types/Cache.ts +++ b/src/cache/core/types/Cache.ts @@ -21,6 +21,7 @@ export namespace Cache { } export interface WatchOptions extends ReadOptions { + immediate?: boolean; callback: WatchCallback; } diff --git a/src/cache/inmemory/inMemoryCache.ts b/src/cache/inmemory/inMemoryCache.ts index bb5016247fc..5a55cc2eeb8 100644 --- a/src/cache/inmemory/inMemoryCache.ts +++ b/src/cache/inmemory/inMemoryCache.ts @@ -165,7 +165,9 @@ export class InMemoryCache extends ApolloCache { public watch(watch: Cache.WatchOptions): () => void { this.watches.add(watch); - + if (watch.immediate) { + this.maybeBroadcastWatch(watch); + } return () => { this.watches.delete(watch); };