repl icon indicating copy to clipboard operation
repl copied to clipboard

Drop Some Dependencies

Open avivkeller opened this issue 1 year ago • 10 comments

This PR drops a few dependencies to make this package smaller. This will help with the eventual movement to include this in NodeJS core.

This PR does NOT drop emphasize (5.5MB)

See https://github.com/nodejs/node/issues/52510

avivkeller avatar Apr 13 '24 12:04 avivkeller

After some hard work, I managed to (in my PR):

Drop Dependencies (The main goal)

  1. Drop chalk (Replace with util.inspect.colors) Note that chalk is still pre-installed with emphasize

  2. Drop strip-ansi (Replace with basic implementation)

  3. Drop ws (Replace with inspector) Note that this change changes a lot, and may be unstable

  4. Drop child_process (Replace with inspector)

    Fixes "if the child process (which runs all the code) becomes frozen it will not be killed after the parent exits."

Little Fixes

These just came up when I was updating the codebase

  1. Fix multi-line preview

avivkeller avatar Apr 13 '24 14:04 avivkeller

/rr @devsnek Requesting review

avivkeller avatar Apr 13 '24 14:04 avivkeller

What is the reason for removing the development dependencies (devDependencies)?

VoltrexKeyva avatar Apr 13 '24 15:04 VoltrexKeyva

What is the reason for removing the development dependencies (devDependencies)?

Oops! That must've been my bad, sorry! I'll fix it now

avivkeller avatar Apr 13 '24 15:04 avivkeller

Drop child_process (Replace with inspector)

why? using child_process is very intentional, it allows the interface to recover from bad logic that blocks evaluation.

devsnek avatar Apr 13 '24 16:04 devsnek

Drop child_process (Replace with inspector)

why? using child_process is very intentional, it allows the interface to recover from bad logic that blocks evaluation.

As far as I could tell, child_process was only used to init the REPL, so IMO, using the inspector to init the REPL seems like a better idea, as it is what is used in the native NodeJS. If you disagree, I can add it back.

avivkeller avatar Apr 13 '24 16:04 avivkeller

The latest commits allows the preview of the line to preview based on the autofill, similar to how nodejs does it. (mo -> preview module)

avivkeller avatar Apr 13 '24 16:04 avivkeller

@devsnek, if you remember any other bugs, I can work on fixing them as well (if you don't mind)

avivkeller avatar Apr 13 '24 20:04 avivkeller

If I find any other bug fixes, would you prefer I stash them locally and wait for this PR to be resolved, or just push them into this?

avivkeller avatar Apr 14 '24 16:04 avivkeller

Hi, @devsnek; sorry for bugging you (again), but how are you feeling about this PR. I'd love some feedback so I can make it (and my other PRs) better for the future!

avivkeller avatar Apr 16 '24 13:04 avivkeller