moleculer-cli icon indicating copy to clipboard operation
moleculer-cli copied to clipboard

Fix for double characters due to inquirer package:

Open CodexHere opened this issue 2 years ago • 7 comments

  • Updated minimal dependencies to get operational:
    • nats
    • inquirer - the main culprit of double characters
    • eslint and associative plugins
    • jest for experimental VM Module import support
    • npm-check - was missing but used in npm scripts
  • Updated eslintrc to refer to ECMA 2022 for dynamic import features used within
  • Updated importing inquirer using dynamic import
    • Required a few changes to keep order of operations in check, mainly awaiting import adhoc.
  • With changes to using a dynamic import, JEST required node to be executed with NODE_OPTIONS=--experimental-vm-modules
    • See: https://jestjs.io/docs/ecmascript-modules
  • Removed a few unused references in files touched
  • Updated create.spec to mock with changes due to dynamic import, and doing so in a beforeEach functional block to remove redundancy

CodexHere avatar Jun 22 '23 01:06 CodexHere

This PR contains a lot of breaking changes. Can we upgrade only the non-ESM inquirer 8.x.x? Is it solved the original problem?

icebob avatar Jul 12 '23 16:07 icebob

I don't think so. This seems to be the source of the problem: https://github.com/SBoudrias/Inquirer.js/issues/109 and I think that this was only solved in v9 of inquirer

AndreMaz avatar Jul 12 '23 16:07 AndreMaz

Ah a few of us had kinda talked about this in the Discord...

As @AndreMaz mentions, this was only fixed after it moved to ESM.

I wasn't sure how the legacy node versions were handled, and I tested down to v16 due to it being the lowest version still not EOL'd (although in 2 months it will be, and it's the lowest version dockerhub has in their registry).

From the minimal error information, it seems like some dependency is failing it's postinstall script while accessing an arbitrary object. async/await was added in node 7.6, so not sure which lib would be dealing with this.

I don't currently have the capacity to build Dockerfiles for v10-14 for node, but might in the near™ future so that I can dive deeper into which dependency is failing

Otherwise, not sure what the course of action is here.

CodexHere avatar Jul 12 '23 19:07 CodexHere

I don't think so. This seems to be the source of the problem: SBoudrias/Inquirer.js#109 and I think that this was only solved in v9 of inquirer

I've checked the issue, but I don't see it's been solved, no any relevant commit linked to the issue, just workarounds in the comments.

icebob avatar Jul 14 '23 17:07 icebob

You are right, the issue doesn't contain any fix for the issue. However, I've tested locally by bumping inquirer to latest v8.x version and the issue was still present. In this PR the issue is gone

You can reproduce the issue by running npm run dev

AndreMaz avatar Jul 19 '23 20:07 AndreMaz

On that issue the dev says he fixed a bunch of event listeners and it's working. Unfortunately there's no explicit commit to knowingly point to: https://github.com/SBoudrias/Inquirer.js/issues/109#issuecomment-199006633

CodexHere avatar Jul 19 '23 20:07 CodexHere

Came here as I have the double char issue also. Did anything get merged in or a work around? I can see this one is failing some tests now.

ImTheDeveloper avatar Mar 09 '24 13:03 ImTheDeveloper