Instead of having to manually call puppet.exit(), make it a convention-based API:
Each JS/TS entrypoint must export default a promise or a function returning a promise. When this promise resolves, the script is considered to be finished.
Allow manual dynamic tasks by calling puppet.run(functionOrPromise).
If you export / run a function, we can pass the original shell argv and runtime data created by plugins.
For your convenience:
Consider that the script might be a CommonJS module, not an ES module. Also gracefully deal with entrypoint functions that don't return a promise.
Instead of having to manually call
puppet.exit(), make it a convention-based API:Each JS/TS entrypoint must
export defaulta promise or a function returning a promise. When this promise resolves, the script is considered to be finished.Allow manual dynamic tasks by calling
puppet.run(functionOrPromise).If you export / run a function, we can pass the original shell
argvand runtime data created by plugins.For your convenience:
Consider that the script might be a CommonJS module, not an ES module. Also gracefully deal with entrypoint functions that don't return a promise.