Skip to content

@ngrx/data pr #3228 broke the loaded flag without introducing an alternative #4025

Open
@VFiber

Description

@VFiber

Which @ngrx/* package(s) are the source of the bug?

data

Minimal reproduction of the bug/regression with instructions

Before #3228 @ngrx/data provided an option to query if the local Entity-cache already contains a snapshot of every entity trough the ˙loaded flag.

Although the naming was a bit off, after #3228 there is no option to determine if every entity is loaded or if the store only contains partial data.

What makes this as a bug: Since V8 (ngrx/data introduced) this property was not changed in the documentation (see: https://v8.ngrx.io/guide/data/entity-collection, https://ngrx.io/guide/data/entity-collection (v16)).

Expected behavior

loaded flag only gets true when QueryAll successfully executed and the data patched back to the state.

Versions of NgRx, Angular, Node, affected browser(s) and operating system(s)

NgRx: 13.0

Other information

My suggested alternative solution is:

  • add a new loadedType: partial / full / not_loaded flag and fill it / introduce a simple boolean allLoaded as smorandi suggested in getWithQuery method should set loaded property to true #3165 in the original issue comments
  • customize the behavior in EntityDataModuleConfig and create an option to revert to the old behavior for everyone who upgrades from v12 does not have to re-write the whole cache-logic, but make it deprecated to indicate this is not the intended use
  • fix the documentation, clearly state what loaded flag means in the new context, reflect on the fact that the behaviur was changed in v13
  • include the alternative solutions in the docs that replaces / restores the previous functionality and a deprecation notice as it will be removed in the next 1-2-3 version.

I would be willing to submit a PR to fix this issue

  • Yes
  • No

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions