| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
There was a problem hiding this comment.
You may want to use single equals to also check for null.
Sorry, something went wrong.
There was a problem hiding this comment.
Hm, as far as I can tell someone would have to explicitly set the constructor to null... that would be really weird but I'll change it accordingly.
Sorry, something went wrong.
|
Marking as semver-major due to changes in error messages. |
Sorry, something went wrong.
|
@mscdex this should not be semver major as the main intention of the internal errors was to change error messages when ever. |
Sorry, something went wrong.
|
@BridgeAR Right, that's the end goal, but I think until the new error mechanism is widely adopted (e.g. users start checking the special error properties instead of .message) we're still marking error message changes as semver-major. /cc @jasnell to be sure. |
Sorry, something went wrong.
|
Like the improvement. Agree we should still be making these changes semver-major until we get overall agreement that we can starting treating error messages changes differently. Also needs a rebase. |
Sorry, something went wrong.
There are mixed messages being conveyed #13730 (comment)... IMHO the CTC should discuss and decide. |
Sorry, something went wrong.
|
Rebased |
Sorry, something went wrong.
|
IMHO in the tests when you assert the message it should be a RegEx anchored with start-of-line and end in "Received": /^The "last argument" argument must be of type function\. Received/ because whatever comes after "Received" is dependent of the actual input, while the rest is static for each case. |
Sorry, something went wrong.
|
Another idea: export a function from errors: invalidArg(opts) that you use as error.invalidArgs({expected: "gaga", bar}); then you can infer the type of the second arg's name and value: function invalidArg(opts) {
assert.strictEqual(Object.keys(opts).length, 2);
assert.strictEqual('expected' in opts, true);
const exp = opts.expected;
delete opts.expected;
const actKey = Object.keys(opts)[0];
const actVal = opts[actKey];
throw new TypeError('ERR_INVALID_ARG_TYPE', actKey, exp, actVal
// if we add a stackLimit arg
// ,invalidArg);
} |
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
There was a problem hiding this comment.
Could you anchor these /^...
Sorry, something went wrong.
There was a problem hiding this comment.
Addressed
Sorry, something went wrong.
There was a problem hiding this comment.
IMHO for readability use undefined
Sorry, something went wrong.
There was a problem hiding this comment.
I personally prefer it this way to have a consistent way of doing this but I don't have strong feelings about it.
Sorry, something went wrong.
There was a problem hiding this comment.
👍 Generally I yield to the OP. So it's your call.
Sorry, something went wrong.
There was a problem hiding this comment.
Personal style nit: Is these cases chop down the args like in L1082
Sorry, something went wrong.
There was a problem hiding this comment.
Addressed
Sorry, something went wrong.
I feel like this is a bit to much magic and the call itself won't be much shorter. So I'd say let's stick to how it is currently. I also added the Received part in the RegExp if the line length allowed it. I hope that's fine, I personally don't see much benefit in adding the Received as it might theoretically change and it is already checked that all arguments are properly passed to the internal error. |
Sorry, something went wrong.
👍
Just so it doesn't change "accidentally". Changes in test files get more review attention, so IMHO it's best to assert as much as possible, then later change carefully. |
Sorry, something went wrong.
Sorry, something went wrong.
|
Rebased |
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM with a question. In a number of tests the check stops at 'Received' any reason we can't validate the additional information after 'Received' as well ?
Sorry, something went wrong.
|
It is in most cases possible to use the exact value. In the end I don't think that it's that important to test for the message strictly as it can change more often but I'm fine with changing it. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
I reworked the ERR_INVALID_ARG_TYPE error type in a way that provides more information to the user than before.
All of these errors now return what was actually provided and failed.
The information about what was provided and what is expected is more specific (as in not only the type is checked but also the constructor).
I also fixed a few typos and wrong usages like using typeof arg as actual value instead of arg and one entry that actually checks a property, not an argument.
There is one point that might be thought about: mixing multiple expected values can only print either instance of or type of. So ['Array', 'string'] will result in instance of Array or string and not instance of Array or type of string. I could test each entry but I feel that is somewhat unnecessary?
Checklist
Affected core subsystem(s)
errors