Comments (6)
@codespool The change that went into 1.9.7 actually fixed the flush functionality. The issue in oclif/oclif#922 was that we weren't awaiting a promise and fixing flush
revealed that. You can see the fix here: oclif/oclif#926
I'm assuming that you have a similar issue with your command
from core.
You could wrap spawn in a promise, listen to exit
event, and resolve when it happens. That should play nicely with oclif/core.
We are using it here:
https://github.com/AstarNetwork/swanky-cli/blob/master/src/commands/compile/index.ts
from core.
Ah, I see, so pre 1.9.7 tolerates the buggy code, and that's why it works..
Thanks for clearing it up!
from core.
@mdonnalley I'm not sure that's necessarily the same thing. Unless I'm mistaken, the fix applies to a generator issue in the main oclif package, but there's still an issue specifically in oclif/core. Our project is currently hitting this problem, and we're only using oclif/core.
@codespool I know you closed this, but have you checked yet whether it's actually fixed on your end?
from core.
Yes, as @mdonnalley hinted, the latest version works when we await
the task.run()
promise from listr2.
The promise.race
in the flush implementation gets passed your command and a timeout of 10s, so if you don't await
for a promise inside your command, and it takes more than 10s to resolve, it will throw that timed out
error.
So, doesn't matter is it a yeoman generator or something else, as long as you await
whatever's promise is running in your Command.run()
from core.
Ah, that makes sense, I misunderstood the root problem earlier. Maybe our case is a bit special then. We have a command that spawns a detached child process with child_process.spawn, and expects the Node process to exit while the child process continues.
So, I'm not sure if this is still a flaw in oclif not handling that scenario, or if this is just an unusual scenario that should be handled differently on our end.
from core.
Related Issues (20)
- topicSeparator space generates wrong message when used alongside usage HOT 1
- Upgrading to a version after 3.20.0 causes issues with hooks HOT 3
- (help): show arg/flag options if user didn't provide any HOT 1
- Command summary displays as topic summary when nested below topic without summary. HOT 1
- Unable to run dev.js outside of the project folder
- BaseCommand Documentation HOT 2
- Errors on command load should throw errors instead of invalidating the command HOT 6
- SimpleAction does not write newline for status change HOT 7
- [BUG]The issue of ux.prompt handling special characters. HOT 3
- Can't run development mode with bun HOT 2
- RangeError on ux.table when column starts with emoji HOT 1
- ux.Table: Incorrect parsing of double quotes when exporting to CSV HOT 3
- ux.table `maxWidth` column option HOT 2
- CliUx.ux.prompt text truncation HOT 3
- Build failure with `exactOptionalPropertyTypes` enabled HOT 5
- [Feature request] Alias a single flag to a set of multiple flags HOT 1
- Getting MaxListenersExceededWarning: Possible EventEmitter memory leak detected. after updating to latest version of oclif HOT 2
- Error bundling @oclif/core into my project HOT 15
- UX tables get displayed along with json output on usage of --json flag HOT 2
- Specify different oclif options for dev and run HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from core.