Conversation
| const range = findPortsRange(); | ||
|
|
||
| const ports = { | ||
| firstPort: +range[0], |
There was a problem hiding this comment.
Dont need every time add +` for converting type to number.
Just guarantee, that findPortsRange will return numbers
There was a problem hiding this comment.
Thanks for advice, changed type in function's return
| socket.on('connect', () => { | ||
| clearTimeout(time); | ||
| socket.destroy(); | ||
| process.stdout.write('.'); |
There was a problem hiding this comment.
Dont use process.stdout.write
Prefet to use console.log / warn
| const showResult = host => { | ||
| if (args.help) { | ||
| process.stdout.write(messages().help); | ||
| process.exit(1); |
There was a problem hiding this comment.
Bad practice to fail app with such aggressive methods :)
There was a problem hiding this comment.
Understand, i'll just return false than
| process.stdout.write(messages().help); | ||
| process.exit(1); | ||
| } | ||
| if (!args.host) { |
There was a problem hiding this comment.
If no hosts -> let's ask again about hosts?
| process.stdout.write(messages().noHost); | ||
| process.exit(1); | ||
| } else { | ||
| openedPortCheck(host, ports.firstPort, function nextIteration () { |
There was a problem hiding this comment.
This recursion is not effective due to huge memory usage, slowness, and other reasons.
I propose to you rewrite this to one of the ways:
- Async Iterations (can be paralleled like 10+ in one batch iterations, looks how https://caolan.github.io/async/v3/docs.html#mapLimit works)
- Generator (if use 12+ nodejs -> async generator)
- If you want recursion, let it be optimized, like tails recursion
There was a problem hiding this comment.
Thanks, i changed recursion with mapLimit
| }; | ||
|
|
||
| ipLookup() | ||
| .then(res => showResult(res)) |
There was a problem hiding this comment.
Here you can use console.table to write better output
I've read
./README.mdand./CODE_QUALITY.mdcarefully.The code is checked by
yarn run lint:jsand linter reported no errors.The code is submitted in its own sub-directory and in a dedicated feature branch.
Please, review.