Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(storage-plugin): ensure the deserialization is not skipped for master key #1887

Merged
merged 2 commits into from
Aug 1, 2022

Conversation

arturovt
Copy link
Member

@arturovt arturovt commented Jul 30, 2022

Issues: #1857 and #1146

1857: This is a follow-up fix for 2f9542d. We added a check if we need to re-hydrate the state again or not (considering action.addedStates). But this should never happen for the default state key (@@STATE).

1146: This is an old issue that also related to unnecessary state re-hydration when the default state key is used. We re-hydrate the whole state when any feature state is added by doing state = { ...state, ...val }. My fix adds some kind of "smart merge" that checks what feature state has been added and picks its name from val.

@bundlemon
Copy link

bundlemon bot commented Jul 30, 2022

BundleMon

Files updated (2)
Status Path Size Limits
fesm2015/ngxs-store.js
114.5KB (-496B -0.42%) 125KB / +0.5%
fesm5/ngxs-store.js
133.46KB (-497B -0.36%) 145KB / +0.5%
Unchanged files (4)
Status Path Size Limits
fesm5/ngxs-store-operators.js
10.07KB 15KB / +0.5%
fesm2015/ngxs-store-operators.js
9.94KB 15KB / +0.5%
fesm5/ngxs-store-internals.js
6.58KB 20KB / +0.5%
fesm2015/ngxs-store-internals.js
5.65KB 20KB / +0.5%

Total files change -993B -0.34%

Groups updated (6)
Status Path Size Limits
@ngxs/store(umd.min)[gzip]
./bundles/*.umd.min.js
13.62KB (-106B -0.75%) +1%
@ngxs/store(fesm5)[gzip]
./fesm5/*.js
28.9KB (-151B -0.51%) +1%
@ngxs/store(umd)[gzip]
./bundles/*.umd.js
39.52KB (-154B -0.38%) +1%
@ngxs/store(fesm2015)[gzip]
./fesm2015/*.js
26.52KB (-159B -0.58%) +1%
@ngxs/store(esm5)[gzip]
./esm5/**/*.js
174.72KB (-620B -0.35%) +1%
@ngxs/store(esm2015)[gzip]
./esm2015/**/*.js
168.18KB (-637B -0.37%) +1%

Final result: ✅

View report in BundleMon website ➡️


Current branch size history | Target branch size history

@bundlemon
Copy link

bundlemon bot commented Jul 30, 2022

BundleMon (NGXS Plugins)

Files updated (4)
Status Path Size Limits
Plugins(fesm2015)[gzip]
storage-plugin/fesm2015/ngxs-storage-plugin.j
s
3.64KB (+675B +22.12%) +1%
Plugins(umd)[gzip]
storage-plugin/bundles/ngxs-storage-plugin.um
d.js
7.24KB (+661B +9.79%) +1%
Plugins(fesm5)[gzip]
storage-plugin/fesm5/ngxs-storage-plugin.js
3.95KB (+652B +19.24%) +1%
Plugins(umd.min)[gzip]
storage-plugin/bundles/ngxs-storage-plugin.um
d.min.js
2.32KB (+90B +3.94%) +1%
Unchanged files (24)
Status Path Size Limits
Plugins(umd)[gzip]
router-plugin/bundles/ngxs-router-plugin.umd.
js
7.71KB +1%
Plugins(umd)[gzip]
hmr-plugin/bundles/ngxs-hmr-plugin.umd.js
6.96KB +1%
Plugins(umd)[gzip]
websocket-plugin/bundles/ngxs-websocket-plugi
n.umd.js
6.87KB +1%
Plugins(umd)[gzip]
form-plugin/bundles/ngxs-form-plugin.umd.js
6.4KB +1%
Plugins(umd)[gzip]
devtools-plugin/bundles/ngxs-devtools-plugin.
umd.js
6.16KB +1%
Plugins(umd)[gzip]
logger-plugin/bundles/ngxs-logger-plugin.umd.
js
5.77KB +1%
Plugins(fesm5)[gzip]
router-plugin/fesm5/ngxs-router-plugin.js
4.31KB +1%
Plugins(fesm2015)[gzip]
router-plugin/fesm2015/ngxs-router-plugin.js
4.02KB +1%
Plugins(fesm5)[gzip]
hmr-plugin/fesm5/ngxs-hmr-plugin.js
3.62KB +1%
Plugins(fesm5)[gzip]
websocket-plugin/fesm5/ngxs-websocket-plugin.
js
3.53KB +1%
Plugins(fesm2015)[gzip]
hmr-plugin/fesm2015/ngxs-hmr-plugin.js
3.25KB +1%
Plugins(fesm2015)[gzip]
websocket-plugin/fesm2015/ngxs-websocket-plug
in.js
3.15KB +1%
Plugins(umd.min)[gzip]
hmr-plugin/bundles/ngxs-hmr-plugin.umd.min.js
3.1KB +1%
Plugins(fesm5)[gzip]
form-plugin/fesm5/ngxs-form-plugin.js
3.04KB +1%
Plugins(fesm5)[gzip]
devtools-plugin/fesm5/ngxs-devtools-plugin.js
2.83KB +1%
Plugins(umd.min)[gzip]
router-plugin/bundles/ngxs-router-plugin.umd.
min.js
2.72KB +1%
Plugins(fesm2015)[gzip]
form-plugin/fesm2015/ngxs-form-plugin.js
2.71KB +1%
Plugins(fesm2015)[gzip]
devtools-plugin/fesm2015/ngxs-devtools-plugin
.js
2.65KB +1%
Plugins(fesm5)[gzip]
logger-plugin/fesm5/ngxs-logger-plugin.js
2.48KB +1%
Plugins(umd.min)[gzip]
form-plugin/bundles/ngxs-form-plugin.umd.min.
js
2.41KB +1%
Plugins(fesm2015)[gzip]
logger-plugin/fesm2015/ngxs-logger-plugin.js
2.37KB +1%
Plugins(umd.min)[gzip]
websocket-plugin/bundles/ngxs-websocket-plugi
n.umd.min.js
2.18KB +1%
Plugins(umd.min)[gzip]
logger-plugin/bundles/ngxs-logger-plugin.umd.
min.js
1.95KB +1%
Plugins(umd.min)[gzip]
devtools-plugin/bundles/ngxs-devtools-plugin.
umd.min.js
1.86KB +1%

Total files change +2.03KB +1.89%

Groups updated (6)
Status Path Size Limits
All Plugins(esm5)[gzip]
./-plugin/esm5/**/.js
121.25KB (+2.15KB +1.81%) +1%
All Plugins(esm2015)[gzip]
./-plugin/esm2015/**/.js
115.91KB (+2.12KB +1.86%) +1%
All Plugins(fesm2015)[gzip]
./-plugin/fesm2015/.js
21.79KB (+675B +3.12%) +1%
All Plugins(umd)[gzip]
./-plugin/bundles/.umd.js
47.12KB (+661B +1.39%) +1%
All Plugins(fesm5)[gzip]
./-plugin/fesm5/.js
23.75KB (+652B +2.75%) +1%
All Plugins(umd.min)[gzip]
./-plugin/bundles/.umd.min.js
16.53KB (+90B +0.53%) +1%

Final result: ❌

View report in BundleMon website ➡️


Current branch size history | Target branch size history

@bundlemon
Copy link

bundlemon bot commented Jul 30, 2022

BundleMon (Integration Projects)

Files updated (4)
Status Path Size Limits
Main bundles(Gzip)
hello-world-ng14-ivy/dist-integration/main.(h
ash).js
65.33KB (+279B +0.42%) +1%
Main bundles(Gzip)
hello-world-ng13-ivy/dist-integration/main.(h
ash).js
69.64KB (+269B +0.38%) +1%
Main bundles(Gzip)
hello-world-ng12-ivy/dist-integration/main.(h
ash).js
67.73KB (+265B +0.38%) +1%
Main bundles(Gzip)
hello-world-ng11-ivy/dist-integration/main.(h
ash).js
71.01KB (+260B +0.36%) +1%

Total files change +1.05KB +0.38%

Final result: ✅

View report in BundleMon website ➡️


Current branch size history | Target branch size history

@arturovt arturovt force-pushed the artur/fix-1857 branch 6 times, most recently from de0a3e5 to 35e4575 Compare July 31, 2022 18:22
@codeclimate
Copy link

codeclimate bot commented Aug 1, 2022

Code Climate has analyzed commit 80513cf and detected 2 issues on this pull request.

Here's the issue category breakdown:

Category Count
Complexity 2

The test coverage on the diff in this pull request is 100.0% (50% is the threshold).

This pull request will bring the total coverage in the repository to 96.4% (0.1% change).

View more on Code Climate.

Copy link
Member

@markwhitfeld markwhitfeld left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work!!!

@markwhitfeld markwhitfeld added this to the v3.7.5 milestone Aug 1, 2022
@arturovt arturovt merged commit 817c422 into master Aug 1, 2022
@arturovt arturovt deleted the artur/fix-1857 branch August 1, 2022 12:44
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Aug 12, 2022
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@ngxs/form-plugin](https://github.com/ngxs/store) | dependencies | patch | [`3.7.4` -> `3.7.5`](https://renovatebot.com/diffs/npm/@ngxs%2fform-plugin/3.7.4/3.7.5) |
| [@ngxs/storage-plugin](https://github.com/ngxs/store) | dependencies | patch | [`3.7.4` -> `3.7.5`](https://renovatebot.com/diffs/npm/@ngxs%2fstorage-plugin/3.7.4/3.7.5) |
| [@ngxs/store](https://github.com/ngxs/store) | dependencies | patch | [`3.7.4` -> `3.7.5`](https://renovatebot.com/diffs/npm/@ngxs%2fstore/3.7.4/3.7.5) |

---

### Release Notes

<details>
<summary>ngxs/store</summary>

### [`v3.7.5`](https://github.com/ngxs/store/blob/HEAD/CHANGELOG.md#&#8203;375-2022-08-08)

[Compare Source](ngxs/store@v3.7.4...v3.7.5)

-   Performance: Tree-shake no type on the action error [#&#8203;1858](ngxs/store#1858)
-   Fix: Give back control to `developmentMode` config property [#&#8203;1878](ngxs/store#1878)
-   Fix: Do not use `refCount()` since it makes selectable stream cold [#&#8203;1883](ngxs/store#1883)
-   Fix: Remove `?` from `ctx` parameter of lifecycle hooks since they are never undefined [#&#8203;1889](ngxs/store#1889)
-   Fix: Avoid incorrectly ordered state observable events [#&#8203;1908](ngxs/store#1908)
-   Fix: Router Plugin - Prevent router overriding valid navigation [#&#8203;1907](ngxs/store#1907)
-   Fix: Storage Plugin - Provide more meaningful error message when the storage quota exceeds [#&#8203;1863](ngxs/store#1863)
-   Fix: Storage Plugin - Ensure the deserialization is not skipped for master key [#&#8203;1887](ngxs/store#1887)
-   Fix: Storage Plugin - Do not re-hydrate the whole state when the feature state is added [#&#8203;1887](ngxs/store#1887)
-   Fix: Devtools Plugin - Enable time-traveling for navigation actions [#&#8203;1868](ngxs/store#1868)
-   Fix: Form Plugin - Prevent actions infinite loop with multiple `ngxsForm` directives [#&#8203;1890](ngxs/store#1890)
-   Fix: Do not check if the state class is injectable within the decorator since the `ɵprov` will not exist in JIT mode [#&#8203;1867](ngxs/store#1867)
-   Revert: revert select decorator changes and add deprecation note [#&#8203;1871](ngxs/store#1871)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xNTEuMiIsInVwZGF0ZWRJblZlciI6IjMyLjE1Mi4wIn0=-->

Co-authored-by: cabr2-bot <[email protected]>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1497
Reviewed-by: Epsilon_02 <[email protected]>
Co-authored-by: Calciumdibromid Bot <[email protected]>
Co-committed-by: Calciumdibromid Bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants