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(http): allow passing maximumDepth to prevent big object being stringified #2425

Merged
merged 6 commits into from
Mar 24, 2024

Conversation

roggervalf
Copy link
Contributor

@roggervalf roggervalf commented Mar 9, 2024

safe-stable-stringify by default stringify all levels of an object, but this is not good in all cases if you have giant objects, this should prevent consuming a lot of memory when logging

@roggervalf
Copy link
Contributor Author

please @DABH when you get some time

Copy link
Contributor

@DABH DABH left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

@roggervalf
Copy link
Contributor Author

roggervalf commented Mar 9, 2024

When you get some pls to merge it

@@ -35,6 +35,7 @@ module.exports = class Http extends TransportStream {
this.port = options.port;
this.auth = options.auth;
this.path = options.path || '';
this.maximumDepth = options.maximumDepth || 10;
Copy link
Contributor

Choose a reason for hiding this comment

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

We can't change the current default behavior though -- looks like default is Infinity per https://github.com/BridgeAR/safe-stable-stringify/blob/46f24495221803b7a945883cb8fb262b14f1ea52/index.js#L125 so I think that is what we should use here.

Copy link
Contributor

Choose a reason for hiding this comment

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

(Can't quite use Infinity due to the checks safe-stable-stringify has in place -- try using ES6 spreading to conditionally set the prop in the config object if it's passed in as an option)

@DABH DABH merged commit a237865 into winstonjs:master Mar 24, 2024
4 checks passed
@roggervalf roggervalf deleted the fix-json-stringify-maximumd0e branch March 24, 2024 21:57
Vylpes pushed a commit to Vylpes/card-drop that referenced this pull request Apr 23, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [winston](https://github.com/winstonjs/winston) | dependencies | minor | [`3.11.0` -> `3.13.0`](https://renovatebot.com/diffs/npm/winston/3.11.0/3.13.0) |

---

### Release Notes

<details>
<summary>winstonjs/winston (winston)</summary>

### [`v3.13.0`](https://github.com/winstonjs/winston/releases/tag/v3.13.0)

[Compare Source](winstonjs/winston@v3.12.1...v3.13.0)

-   fix(http): allow passing maximumDepth to prevent big object being stringified ([#&#8203;2425](winstonjs/winston#2425))  [`a237865`](winstonjs/winston@a237865)

### [`v3.12.1`](https://github.com/winstonjs/winston/releases/tag/v3.12.1)

[Compare Source](winstonjs/winston@v3.12.0...v3.12.1)

-   Bump [@&#8203;types/node](https://github.com/types/node) from 20.11.24 to 20.11.29 ([#&#8203;2431](winstonjs/winston#2431))  [`b10b98f`](winstonjs/winston@b10b98f)
-   Revert "Remove nonexistent Logger methods from types" ([#&#8203;2434](winstonjs/winston#2434))  [`0277035`](winstonjs/winston@0277035)
-   fixed flaky test case ([#&#8203;2412](winstonjs/winston#2412))  [`d95c948`](winstonjs/winston@d95c948)

### [`v3.12.0`](https://github.com/winstonjs/winston/releases/tag/v3.12.0)

[Compare Source](winstonjs/winston@v3.11.0...v3.12.0)

-   missing timestamp format in ready-to-use-pattern example ([#&#8203;2421](winstonjs/winston#2421))  [`9e5b407`](winstonjs/winston@9e5b407)
-   bump deps ([#&#8203;2422](winstonjs/winston#2422))  [`4a85e6b`](winstonjs/winston@4a85e6b)
-   \[chore] Run coveralls CI check on Node 20 not 16 ([#&#8203;2418](winstonjs/winston#2418))  [`e153c68`](winstonjs/winston@e153c68)
-   Bump [@&#8203;types/node](https://github.com/types/node) from 20.8.6 to 20.11.19 ([#&#8203;2413](winstonjs/winston#2413))  [`587f40f`](winstonjs/winston@587f40f)
-   Update README.md ([#&#8203;2417](winstonjs/winston#2417))  [`8e99a00`](winstonjs/winston@8e99a00)
-   docs: fix anchor in transports docs ([#&#8203;2416](winstonjs/winston#2416))  [`0bde36b`](winstonjs/winston@0bde36b)
-   add winston-transport-vscode to transports docs ([#&#8203;2411](winstonjs/winston#2411))  [`8fb5b41`](winstonjs/winston@8fb5b41)
-   Bump [@&#8203;babel/cli](https://github.com/babel/cli) from 7.23.0 to 7.23.9 ([#&#8203;2406](winstonjs/winston#2406))  [`a326743`](winstonjs/winston@a326743)
-   Add winston-newrelic-agent-transport to transport documentation ([#&#8203;2382](winstonjs/winston#2382))  [`cc731ef`](winstonjs/winston@cc731ef)
-   Remove newrelic-winston transport entry. ([#&#8203;2405](winstonjs/winston#2405))  [`f077f30`](winstonjs/winston@f077f30)
-   Bump eslint from 8.55.0 to 8.56.0 ([#&#8203;2397](winstonjs/winston#2397))  [`3943c41`](winstonjs/winston@3943c41)
-   Bump the npm_and_yarn group group with 1 update ([#&#8203;2391](winstonjs/winston#2391))  [`8260866`](winstonjs/winston@8260866)
-   Fix unhandled rejection handling ([#&#8203;2390](winstonjs/winston#2390))  [`333b763`](winstonjs/winston@333b763)
-   Fix all rimraf usages to the best of my ability; glob is not true by default in rimraf; file archive test only passed every other time using async rimraf, could use further investigation  [`c3f3b5b`](winstonjs/winston@c3f3b5b)
-   Fix rimraf usage in new test  [`8f3c653`](winstonjs/winston@8f3c653)
-   Fix rimraf import in test (why didn't this break in PR CI?)  [`f3836aa`](winstonjs/winston@f3836aa)
-   Added functionality to long broken zippedArchive option ([#&#8203;2337](winstonjs/winston#2337))  [`02d4267`](winstonjs/winston@02d4267)
-   Bump async from 3.2.4 to 3.2.5 ([#&#8203;2378](winstonjs/winston#2378))  [`069a40d`](winstonjs/winston@069a40d)
-   Bump [@&#8203;babel/preset-env](https://github.com/babel/preset-env) from 7.23.2 to 7.23.7 ([#&#8203;2384](winstonjs/winston#2384))  [`79282e1`](winstonjs/winston@79282e1)
-   Bump winston-transport; fix test issue ([#&#8203;2386](winstonjs/winston#2386))  [`05788b9`](winstonjs/winston@05788b9)
-   Bump eslint from 8.51.0 to 8.55.0 ([#&#8203;2375](winstonjs/winston#2375))  [`a7c2eec`](winstonjs/winston@a7c2eec)
-   Bump std-mocks from 1.0.1 to 2.0.0 ([#&#8203;2361](winstonjs/winston#2361))  [`85c336e`](winstonjs/winston@85c336e)
-   Bump actions/setup-node from 3 to 4 ([#&#8203;2362](winstonjs/winston#2362))  [`448d11c`](winstonjs/winston@448d11c)
-   chore(README.md): adds documentation around coloring json formatted logs  [`91ec069`](winstonjs/winston@91ec069)
-   Remove nonexistent Logger methods from types  [`c3c3911`](winstonjs/winston@c3c3911)
-   Update dependencies  [`caf2df6`](winstonjs/winston@caf2df6)

</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 this update again.

---

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

---

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

Reviewed-on: https://gitea.vylpes.xyz/External/card-drop/pulls/212
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants