prevent segmentation fault error by directly communicating with process
This commit is contained in:
@ -1,46 +1,47 @@
|
||||
import "typings-global";
|
||||
import chalk = require("chalk");
|
||||
import readline = require("readline");
|
||||
import 'typings-global'
|
||||
import chalk = require('chalk')
|
||||
import readline = require('readline')
|
||||
let rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
});
|
||||
})
|
||||
|
||||
let moduleName: string;
|
||||
let loaderLength: number;
|
||||
let frameCounter: number = 0;
|
||||
let moduleName: string
|
||||
let loaderLength: number
|
||||
let frameCounter: number = 0
|
||||
|
||||
let makeFrame = (): string => {
|
||||
let resultString: string = `[${chalk.green("/".repeat(frameCounter))}${" ".repeat(loaderLength - frameCounter)}] starting ${moduleName}`;
|
||||
if (frameCounter == loaderLength) {
|
||||
frameCounter = 0;
|
||||
let resultString: string = `[${chalk.green('/'.repeat(frameCounter))}${' '.repeat(loaderLength - frameCounter)}] starting ${moduleName}`
|
||||
if (frameCounter === loaderLength) {
|
||||
frameCounter = 0
|
||||
} else {
|
||||
frameCounter++;
|
||||
frameCounter++
|
||||
}
|
||||
return resultString;
|
||||
};
|
||||
return resultString
|
||||
}
|
||||
|
||||
let logEarlyAbort = false;
|
||||
let logEarlyAbort = false
|
||||
let logEarly = () => {
|
||||
if (!logEarlyAbort) {
|
||||
rl.write(null, { ctrl: true, name: 'u' });
|
||||
rl.write(makeFrame());
|
||||
rl.write(null, { ctrl: true, name: 'u' })
|
||||
rl.write(makeFrame())
|
||||
setTimeout(function () {
|
||||
logEarly();
|
||||
}, 80);
|
||||
logEarly()
|
||||
}, 80)
|
||||
} else {
|
||||
readline.clearLine(process.stdout,0)
|
||||
process.exit(0)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
let start = function (moduleNameArg: string = "", loaderLengthArg: string = "10") {
|
||||
moduleName = moduleNameArg;
|
||||
loaderLength = parseInt(loaderLengthArg);
|
||||
logEarly();
|
||||
};
|
||||
|
||||
start(process.env.moduleNameArg, process.env.loaderLengthArg);
|
||||
let start = function (moduleNameArg: string = '', loaderLengthArg: string = '10') {
|
||||
moduleName = moduleNameArg
|
||||
loaderLength = parseInt(loaderLengthArg)
|
||||
logEarly()
|
||||
}
|
||||
|
||||
process.on('SIGINT', () => {
|
||||
logEarlyAbort = true;
|
||||
rl.write(null, { ctrl: true, name: 'u' });
|
||||
process.exit(0);
|
||||
});
|
||||
logEarlyAbort = true
|
||||
})
|
||||
|
||||
start()
|
||||
|
Reference in New Issue
Block a user