- Fix "Middleware" misspelled in method names (#6)
- Fix HubManager#addSyncMiddleware misspelled as addSyncMiddlware
- Fix MiddlewareStore#addSyncMiddleware misspelled as addSyncMiddlware
- Fix MiddlewareStore#addAsyncMiddleware misspelled as addAsyncMiddlware
- Fix MiddlewareStore#removeSyncMiddleware misspelled as removeSyncMiddlware
- Fix MiddlewareStore#removeAsyncMiddleware misspelled as removeAsyncMiddlware
- Fix syntax errors in middleware JSDoc examples
- Added support for aborting jobs. Call TrackedJob#abort method to abort a running job, which will abort the job if possible and reject the job with a JobAbortedError. A job's worker process is notified so that it can gracefully abort and cleanup. (#4)
- Added support for controlling concurrently running jobs. Adds a base JobExecutor class for custom logic, but also includes a built-in implementation (JobExecutorBuiltin) that optionally limits the maximum number of concurrently running jobs. (#5)
- Changed JobWorkerMediator#started to only set to true once the startup confirmation is received. (from #4)
- Changed HubManager#queueJob to add created TrackedJob instances to HubManager#jobExecutor and no longer call TrackedJob#run. As a result, TrackedJob will be in a pre-run state directly after HubManager#queueJob. (from #5)
- Added abstract JobWorkerMediator#sendAbortMessage method. (from #4)
- Renamed JobWorkerIPC#attachIPCChecks to attachToIPC.
- Renamed JobWorkerIPC#detatchIPCChecks to detatchFromIPC.
- Added JobWorkerMediator#forked which is set to true on child process fork, replacing the previous behavior of JobWorkerMediator#started. (from #4)
- Added TrackedJob#isSettled to determine if a job succeeded or failed.
- Added 6th argument to workerBuildJobArg middleware to add abort listener. (from #4)
- Added HubManager#jobExecutor member property which is an instance of a JobExecutor abstract class. TrackedJob instances are added to JobExecutor which is then responsible for calling TrackedJob#run. (from #5)
- Added jobExecutorClass and jobExecutorOptions options to HubManager options to specify the constructor to use for HubManager#jobExecutor and the options to pass to the instance.
- Changed TrackedJob#then/catch to work before TrackedJob#run is called. Previously they would return a rejected Promise before the job was run.
- Added jsdoc for workerLoadJob and workerBuildJobArg middleware.
- Add TrackedJob#result that is set to the result on job success
- Add TrackedJob#error that is set to the result on job error
- Change JobWorker to extend from EventEmitter
- Change JobWorkerIPC to listen for IPC messages
- Re-emit to JobWorker as
ipc-message::<message.type>
- Add JobWorkerIPC#handleIPCDisconnect protected method
- Add JobWorkerIPC#handleIPCMessage protected method
- Re-emit to JobWorker as
- Change JobWorkerIPC to move calls to protected methods to JobWorkerIPC#init
- Fix JobWorkerIPC#requestIPCPayload not clearing timeout
- Fix calling next in quickRun should not start "run" stage synchronously
- Fix TrackedJob#jobStarted emitted synchronously (#3)
- Initial release