Updates
This commit is contained in:
+49
-16
@@ -8,29 +8,27 @@ import killPort from "kill-port";
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
export default async function killChild(
|
||||
/**
|
||||
* Child Process to be killed
|
||||
*/
|
||||
childProcess?: ChildProcess,
|
||||
/**
|
||||
* Port/ports to be killed
|
||||
*/
|
||||
port?: string | number | (string | number)[]
|
||||
): Promise<boolean> {
|
||||
if (!childProcess) return false;
|
||||
|
||||
try {
|
||||
childProcess.kill();
|
||||
return true;
|
||||
const childKilled = childProcess.kill();
|
||||
|
||||
if (childKilled) {
|
||||
return true;
|
||||
} else {
|
||||
return await killPortFn(childProcess, port);
|
||||
}
|
||||
} catch (error: any) {
|
||||
try {
|
||||
if (typeof port == "object" && port?.[0]) {
|
||||
for (let i = 0; i < port.length; i++) {
|
||||
const singlePort = port[i];
|
||||
await killPort(Number(singlePort), "tcp");
|
||||
}
|
||||
childProcess.kill();
|
||||
return true;
|
||||
} else if (port) {
|
||||
await killPort(Number(port), "tcp");
|
||||
childProcess.kill();
|
||||
return true;
|
||||
}
|
||||
} catch (_err) {}
|
||||
await killPortFn(childProcess, port);
|
||||
|
||||
console.log(
|
||||
`${colors.FgRed}Error:${colors.Reset} Child Process couldn't be killed! ${error.message}`
|
||||
@@ -39,3 +37,38 @@ export default async function killChild(
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async function killPortFn(
|
||||
/**
|
||||
* Child Process to be killed
|
||||
*/
|
||||
childProcess?: ChildProcess,
|
||||
/**
|
||||
* Port/ports to be killed
|
||||
*/
|
||||
port?: string | number | (string | number)[]
|
||||
): Promise<boolean> {
|
||||
if (!childProcess) return false;
|
||||
|
||||
try {
|
||||
if (typeof port == "object" && port?.[0]) {
|
||||
for (let i = 0; i < port.length; i++) {
|
||||
const singlePort = port[i];
|
||||
await killPort(Number(singlePort), "tcp");
|
||||
}
|
||||
childProcess.kill();
|
||||
return true;
|
||||
} else if (port) {
|
||||
await killPort(Number(port), "tcp");
|
||||
childProcess.kill();
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} catch (_err: any) {
|
||||
console.log(
|
||||
`${colors.FgRed}Error:${colors.Reset} Child Process PORT couldn't be killed! ${_err.message}`
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user