dataloader icon indicating copy to clipboard operation
dataloader copied to clipboard

perf: call cacheKeyFn only when it is needed (if caching)

Open abendi opened this issue 2 years ago • 1 comments

Previously cacheKeyFn was called unnecessarily with caching disabled as cacheKey was never used in such case. This PR makes sure cacheKeyFn is called only when caching is enabled and cacheKey is actually needed. Sometimes cacheKeyFn can use more expensive code, such as JSON.stringify, in which case it is preferred not to waste CPU cycles.

abendi avatar Jun 09 '23 20:06 abendi

CLA Signed

The committers listed above are authorized under a signed CLA.

  • :white_check_mark: login: abendi / name: Arvo Bendi (e2e7282af7e5c50e68d4ee369881536eee205bc8, 965c884ef40009b0ac0adf9028bfec235baf4bad, 6d7fc3c6ae5cf8175ade2ed36258675c5d2391f9, ab06a203aa02390789a07a46b3c7431e3d276a64)

Ping @saihaj, @ardatan 👀

abendi avatar Jul 11 '24 07:07 abendi

@dimaMachina Thanks for the approval. I added a test case as well and had to fix a flow error. I don't like the usage of any in cacheMap.set((cacheKey: any), promise);. I'd prefer (cacheKey: C), but flow doesn't like that. And runtime assertion feels weird as well. Any suggestions?

abendi avatar Jul 11 '24 09:07 abendi

can you please create changeset?

saihaj avatar Jul 11 '24 16:07 saihaj