nodejs / repl

REPL rewrite for Node.js ✨🐢🚀✨
MIT License
177 stars 25 forks source link

Drop Some Dependencies #54

Open RedYetiDev opened 5 months ago

RedYetiDev commented 5 months ago

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

RedYetiDev commented 5 months ago

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

RedYetiDev commented 5 months ago

/rr @devsnek Requesting review

VoltrexKeyva commented 5 months ago

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

RedYetiDev commented 5 months ago

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

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

devsnek commented 5 months ago

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.

RedYetiDev commented 5 months ago

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.

RedYetiDev commented 5 months ago

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

RedYetiDev commented 5 months ago

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

RedYetiDev commented 5 months ago

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?

RedYetiDev commented 5 months ago

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!