net.connect: behaviour when no arguments are passed
net.connect() - no args does ECONNREFUSED but should be invalid usage
I think I commented on this, and fixed it in backports, and it was thought
that net.connect() should be same as net.connect({port:undefined}), but I
don't agree, it never makes sense to connect when you don't say what you are
connecting to, it has no use case. also strange that undefined works like no
args were passed, but null is like {port: null} was passed. This all
seems ugly and messy. Check the tests.
For the quote above outlined in #33715 (comment), two solutions come to mind.
- Throw
ERR_MISSING_ARGSwhen no arguments are passed (as suggested above -- invalid usage). - To fix the difference in behavior between
port: undefinedandport: null, either makeporta mandatory field that throwsERR_INVALID_ARGSfor anything other than string or numeric values or don't throwERR_INVALID_ARGSforport: null. This needs more brainstorming.
I'd appreciate a few pointers here to see where this should be going.
cc @sam-github