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

feat: propagate data.cause as cause in JsonRpcError constructor #140

Merged
merged 5 commits into from
May 31, 2024

Conversation

legobeat
Copy link
Contributor

@legobeat legobeat commented May 12, 2024

This maps the tc39 error cause field on JsonRpcError instances to data.cause, if it exists and is an object. No further validation is performed.

This is done because adding es2022 or dom to tsconfig lib are not being considered at this point.

Related

Alternative

@legobeat legobeat marked this pull request as ready for review May 29, 2024 02:00
@legobeat legobeat requested a review from a team as a code owner May 29, 2024 02:00
tsconfig.json Outdated Show resolved Hide resolved
- break out util function dataHasCause with test
- comment clarity
- use native causes when available

note: jest coverage depends on runtime
@legobeat
Copy link
Contributor Author

legobeat commented May 31, 2024

Validated locally that tests also pass on Node.js v14, which definitely doesn't have support for causes. We also see the expected increase in jest coverage, there.

@legobeat legobeat requested a review from a team May 31, 2024 01:44
@legobeat
Copy link
Contributor Author

legobeat commented May 31, 2024

Updated with some improvements lifted over from #141 :

  • Try to set cause natively via superclass constructor; fall back to setting manually
    • Use safer methods Object.prototype.hasOwnProperty.call and Object.assign in fallback
  • Comment clarity after feedback
  • Minor type refactor for consistency

This branch has been published for evaluation as @metamask/[email protected]
Preview in extension

functions: 94.44,
lines: 92.85,
statements: 92.85,
branches: 91.89,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
src/classes.ts Outdated Show resolved Hide resolved
Copy link
Member

@rekmarks rekmarks left a comment

Choose a reason for hiding this comment

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

LGTM!

@legobeat legobeat merged commit 1b44940 into MetaMask:main May 31, 2024
18 checks passed
@legobeat
Copy link
Contributor Author

legobeat commented May 31, 2024

If any reviewers are still looking at this: Pending review in #144 so follow-ups are still NBD, if you see any room for improvement.

legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request May 31, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request Jun 1, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request Jun 1, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request Jun 5, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
legobeat added a commit to legobeat/metamask-extension that referenced this pull request Jun 5, 2024
published from 08108c535cf5ee25603715cbfae0cd9aa3f2dea6

MetaMask/rpc-errors#140
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