concurrently
Advanced tools
Comparing version 6.1.0 to 6.2.0
@@ -110,3 +110,5 @@ #!/usr/bin/env node | ||
'restart-tries': { | ||
describe: 'How many times a process that died should restart.', | ||
describe: | ||
'How many times a process that died should restart.\n' + | ||
'Negative numbers will make the process restart forever.', | ||
default: defaults.restartTries, | ||
@@ -113,0 +115,0 @@ type: 'number' |
@@ -303,3 +303,3 @@ const readline = require('readline'); | ||
describe('--handle-input', () => { | ||
it('is alised to -i', done => { | ||
it('is aliased to -i', done => { | ||
const child = run('-i "node fixtures/read-echo.js"'); | ||
@@ -306,0 +306,0 @@ child.log.subscribe(line => { |
{ | ||
"name": "concurrently", | ||
"version": "6.1.0", | ||
"version": "6.2.0", | ||
"description": "Run commands concurrently", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -172,5 +172,6 @@ # Concurrently | ||
Restarting | ||
--restart-tries How many times a process that died should restart. | ||
--restart-tries How many times a process that died should restart. | ||
Negative numbers will make the process restart forever. | ||
[number] [default: 0] | ||
--restart-after Delay time to respawn the process, in milliseconds. | ||
--restart-after Delay time to respawn the process, in milliseconds. | ||
[number] [default: 0] | ||
@@ -261,5 +262,5 @@ | ||
> or rejects, containing an array of objects with information for each command that has been run, in the order | ||
> that the commands terminated. The objects have the shape `{ command, index, exitCode }`, where `command` is the object | ||
> passed in the `commands` array and `index` its index there. Default values (empty strings or objects) are returned for | ||
> the fields that were not specified. | ||
> that the commands terminated. The objects have the shape `{ command, index, exitCode, killed }`, where `command` is the object | ||
> passed in the `commands` array, `index` its index there and `killed` indicates if the process was killed as a result of | ||
> `killOthers`. Default values (empty strings or objects) are returned for the fields that were not specified. | ||
@@ -266,0 +267,0 @@ Example: |
@@ -17,2 +17,3 @@ const Rx = require('rxjs'); | ||
this.spawnOpts = spawnOpts; | ||
this.killed = false; | ||
@@ -45,2 +46,3 @@ this.error = new Rx.Subject(); | ||
exitCode: exitCode === null ? signal : exitCode, | ||
killed: this.killed, | ||
}); | ||
@@ -55,2 +57,3 @@ }); | ||
if (this.killable) { | ||
this.killed = true; | ||
this.killProcess(this.pid, code); | ||
@@ -57,0 +60,0 @@ } |
@@ -63,2 +63,3 @@ const EventEmitter = require('events'); | ||
expect(data.exitCode).toBe(0); | ||
expect(data.killed).toBe(false); | ||
expect(command.process).toBeUndefined(); | ||
@@ -78,2 +79,3 @@ done(); | ||
expect(data.exitCode).toBe('SIGKILL'); | ||
expect(data.killed).toBe(false); | ||
done(); | ||
@@ -103,2 +105,3 @@ }); | ||
expect(data.command).toEqual(commandInfo); | ||
expect(data.killed).toBe(false); | ||
expect(data.index).toBe(1); | ||
@@ -170,2 +173,15 @@ done(); | ||
}); | ||
it('marks the command as killed', done => { | ||
command.start(); | ||
command.close.subscribe(data => { | ||
expect(data.exitCode).toBe(1); | ||
expect(data.killed).toBe(true); | ||
done(); | ||
}); | ||
command.kill(); | ||
process.emit('close', 1, null); | ||
}); | ||
}); |
const Rx = require('rxjs'); | ||
const { bufferCount, map, switchMap, take } = require('rxjs/operators'); | ||
const { bufferCount, switchMap, take } = require('rxjs/operators'); | ||
@@ -4,0 +4,0 @@ module.exports = class CompletionListener { |
@@ -10,2 +10,3 @@ const Rx = require('rxjs'); | ||
this.tries = +tries || defaults.restartTries; | ||
this.tries = this.tries < 0 ? Infinity : this.tries; | ||
this.logger = logger; | ||
@@ -12,0 +13,0 @@ this.scheduler = scheduler; |
@@ -72,2 +72,4 @@ const { createMockInstance } = require('jest-create-mock-instance'); | ||
it.todo('restart processes forever, if tries is negative'); | ||
it('restarts processes until they succeed', () => { | ||
@@ -74,0 +76,0 @@ controller.handle(commands); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
98936
2081
300