UNPKG

lib-utils-ts

Version:

<img src="https://img.shields.io/npm/v/lib-utils-ts"/> <img src="https://img.shields.io/snyk/vulnerabilities/npm/lib-utils-ts"/> <img src="https://img.shields.io/npm/l/lib-utils-ts"/> <img src="https://img.shields.io/github/languages/top/devGnode/lib-util

69 lines (67 loc) 2.13 kB
import {ExitSign} from "./ExitSign"; import {Byte} from "../primitives/Byte"; import {Objects} from "../type/Objects"; /*** * @version 4.0-R-libUtilsTs * @version 1.0-R-JSTrip */ export class CloseProcess{ /***/ private constructor() {} /*** */ public static readonly SIGNS = ExitSign; /*** * @param {number} exitCode * @return {CloseProcess} */ public static exit(exitCode:Byte):CloseProcess{ Objects.requireNotNull(exitCode); return new class extends CloseProcess{ /***/ getSign(): ExitSign {return ExitSign.EXIT;} getExitCode():number{return exitCode.valueOf();} finalize():void{ process.kill(process.pid,this.getExitCode()); } } }; /***@SIGINT*/ public static signInt():CloseProcess{return this.sign(ExitSign.SIGINT);}; /***@SIGTERM*/ public static signTerm():CloseProcess{return this.sign( ExitSign.SIGTERM);} /***@SIGHUP*/ public static signHug():CloseProcess{return this.sign(ExitSign.SIGHUP);} /***@SIGBREAK*/ public static signBreak():CloseProcess{return this.sign(ExitSign.SIGBREAK);} /***@SIGKILL*/ public static signKill():CloseProcess{return this.sign(ExitSign.SIGKILL);}; /***@SIGSTOP*/ public static signStop():CloseProcess{return this.sign(ExitSign.SIGSTOP);}; /*** * @param {ExitSign} sign * @return {CloseProcess} */ public static sign(sign:ExitSign):CloseProcess{ Objects.requireNotNull(sign); return new class extends CloseProcess{ /***/ public getSign(): ExitSign {return sign;} public getExitCode():number{return sign.getExitCode();} } } /*** * @return {number} */ public getExitCode():number{return null;} /*** * @return {ExitSign} */ public getSign():ExitSign{ return null;} /*** * @return {NodeJS.Signals} */ public toSignJS():NodeJS.Signals{return this.getSign().toSignJS();} /*** */ public finalize():void{process.kill(process.pid,this.getSign().name());} } Object.package(this);