prevent segmentation fault error by directly communicating with process

This commit is contained in:
2016-09-18 23:11:26 +02:00
parent 6d61043379
commit 5486e268ed
7 changed files with 52 additions and 49 deletions

View File

@ -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()