now forking a seperate process to work when node is busy
This commit is contained in:
		
							
								
								
									
										0
									
								
								dist/early.child.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								dist/early.child.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										54
									
								
								dist/early.child.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								dist/early.child.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					"use strict";
 | 
				
			||||||
 | 
					/// <reference path="./typings/index.d.ts" />
 | 
				
			||||||
 | 
					var colors = require("colors");
 | 
				
			||||||
 | 
					var readline = require("readline");
 | 
				
			||||||
 | 
					var rl;
 | 
				
			||||||
 | 
					var initReadline = function () {
 | 
				
			||||||
 | 
					    rl = readline.createInterface({
 | 
				
			||||||
 | 
					        input: process.stdin,
 | 
				
			||||||
 | 
					        output: process.stdout
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					var moduleName;
 | 
				
			||||||
 | 
					var loaderLength;
 | 
				
			||||||
 | 
					var frameCounter = 0;
 | 
				
			||||||
 | 
					var makeFrame = function () {
 | 
				
			||||||
 | 
					    var resultString = "["
 | 
				
			||||||
 | 
					        + "/".green.repeat(frameCounter)
 | 
				
			||||||
 | 
					        + " ".repeat(loaderLength - frameCounter)
 | 
				
			||||||
 | 
					        + "]"
 | 
				
			||||||
 | 
					        + " starting "
 | 
				
			||||||
 | 
					        + moduleName.cyan;
 | 
				
			||||||
 | 
					    if (frameCounter == loaderLength) {
 | 
				
			||||||
 | 
					        frameCounter = 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else {
 | 
				
			||||||
 | 
					        frameCounter++;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return resultString;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					var logEarly = function () {
 | 
				
			||||||
 | 
					    rl.write(null, { ctrl: true, name: 'u' });
 | 
				
			||||||
 | 
					    rl.write(makeFrame());
 | 
				
			||||||
 | 
					    setTimeout(function () {
 | 
				
			||||||
 | 
					        logEarly();
 | 
				
			||||||
 | 
					    }, 200);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					var start = function (moduleNameArg, loaderLengthArg) {
 | 
				
			||||||
 | 
					    if (moduleNameArg === void 0) { moduleNameArg = ""; }
 | 
				
			||||||
 | 
					    if (loaderLengthArg === void 0) { loaderLengthArg = "10"; }
 | 
				
			||||||
 | 
					    console.log(moduleNameArg);
 | 
				
			||||||
 | 
					    moduleName = moduleNameArg;
 | 
				
			||||||
 | 
					    loaderLength = parseInt(loaderLengthArg);
 | 
				
			||||||
 | 
					    if (!process.env.CI) {
 | 
				
			||||||
 | 
					        initReadline();
 | 
				
			||||||
 | 
					        logEarly();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else {
 | 
				
			||||||
 | 
					        console.log("**** starting " + moduleName.cyan + " ****");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    ;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					start(process.env.moduleNameArg, process.env.loaderLengthArg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVhcmx5LmNoaWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw2Q0FBNkM7QUFDN0MsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQy9CLElBQU8sUUFBUSxXQUFXLFVBQVUsQ0FBQyxDQUFDO0FBQ3RDLElBQUksRUFBRSxDQUFDO0FBQ1AsSUFBSSxZQUFZLEdBQUc7SUFDZixFQUFFLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUM5QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO0tBQ3JCLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVGLElBQUksVUFBaUIsQ0FBQztBQUN0QixJQUFJLFlBQW1CLENBQUM7QUFDeEIsSUFBSSxZQUFZLEdBQVUsQ0FBQyxDQUFDO0FBRTVCLElBQUksU0FBUyxHQUFHO0lBQ1osSUFBSSxZQUFZLEdBQVUsR0FBRztVQUN2QixHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7VUFDOUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1VBQ3ZDLEdBQUc7VUFDSCxZQUFZO1VBQ1osVUFBVSxDQUFDLElBQUksQ0FBQztJQUV0QixFQUFFLENBQUEsQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLENBQUEsQ0FBQztRQUM3QixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLFlBQVksRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLENBQUMsWUFBWSxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLElBQUksUUFBUSxHQUFHO0lBQ1gsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ3hDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN0QixVQUFVLENBQUM7UUFDUCxRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQztBQUVGLElBQUksS0FBSyxHQUFHLFVBQVMsYUFBeUIsRUFBQyxlQUE2QjtJQUF2RCw2QkFBeUIsR0FBekIsa0JBQXlCO0lBQUMsK0JBQTZCLEdBQTdCLHNCQUE2QjtJQUN4RSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNCLFVBQVUsR0FBRyxhQUFhLENBQUM7SUFDM0IsWUFBWSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztRQUNqQixZQUFZLEVBQUUsQ0FBQztRQUNmLFFBQVEsRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFBQSxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMiLCJmaWxlIjoiZWFybHkuY2hpbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90eXBpbmdzL2luZGV4LmQudHNcIiAvPlxyXG5sZXQgY29sb3JzID0gcmVxdWlyZShcImNvbG9yc1wiKTtcclxuaW1wb3J0IHJlYWRsaW5lID0gcmVxdWlyZShcInJlYWRsaW5lXCIpO1xyXG5sZXQgcmw7IFxyXG5sZXQgaW5pdFJlYWRsaW5lID0gKCkgPT4ge1xyXG4gICAgcmwgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2Uoe1xyXG4gICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXHJcbiAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0XHJcbiAgICB9KTtcclxufTtcclxuXHJcbmxldCBtb2R1bGVOYW1lOnN0cmluZztcclxubGV0IGxvYWRlckxlbmd0aDpudW1iZXI7XHJcbmxldCBmcmFtZUNvdW50ZXI6bnVtYmVyID0gMDtcclxuXHJcbmxldCBtYWtlRnJhbWUgPSAoKTpzdHJpbmcgPT4ge1xyXG4gICAgbGV0IHJlc3VsdFN0cmluZzpzdHJpbmcgPSBcIltcIlxyXG4gICAgICAgICsgXCIvXCIuZ3JlZW4ucmVwZWF0KGZyYW1lQ291bnRlcilcclxuICAgICAgICArIFwiIFwiLnJlcGVhdChsb2FkZXJMZW5ndGggLSBmcmFtZUNvdW50ZXIpXHJcbiAgICAgICAgKyBcIl1cIlxyXG4gICAgICAgICsgXCIgc3RhcnRpbmcgXCJcclxuICAgICAgICArIG1vZHVsZU5hbWUuY3lhbjtcclxuXHJcbiAgICBpZihmcmFtZUNvdW50ZXIgPT0gbG9hZGVyTGVuZ3RoKXtcclxuICAgICAgICBmcmFtZUNvdW50ZXIgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBmcmFtZUNvdW50ZXIrKztcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHRTdHJpbmc7XHJcbn07XHJcblxyXG5sZXQgbG9nRWFybHkgPSAoKSA9PiB7XHJcbiAgICBybC53cml0ZShudWxsLCB7Y3RybDogdHJ1ZSwgbmFtZTogJ3UnfSk7XHJcbiAgICBybC53cml0ZShtYWtlRnJhbWUoKSk7XHJcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgbG9nRWFybHkoKTtcclxuICAgIH0sMjAwKTtcclxufTtcclxuXHJcbmxldCBzdGFydCA9IGZ1bmN0aW9uKG1vZHVsZU5hbWVBcmc6c3RyaW5nID0gXCJcIixsb2FkZXJMZW5ndGhBcmc6c3RyaW5nID0gXCIxMFwiKXtcclxuICAgIGNvbnNvbGUubG9nKG1vZHVsZU5hbWVBcmcpO1xyXG4gICAgbW9kdWxlTmFtZSA9IG1vZHVsZU5hbWVBcmc7XHJcbiAgICBsb2FkZXJMZW5ndGggPSBwYXJzZUludChsb2FkZXJMZW5ndGhBcmcpO1xyXG4gICAgaWYgKCFwcm9jZXNzLmVudi5DSSl7XHJcbiAgICAgICAgaW5pdFJlYWRsaW5lKCk7XHJcbiAgICAgICAgbG9nRWFybHkoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCIqKioqIHN0YXJ0aW5nIFwiICsgbW9kdWxlTmFtZS5jeWFuICsgXCIgKioqKlwiKTtcclxuICAgIH07XHJcbn07XHJcblxyXG5zdGFydChwcm9jZXNzLmVudi5tb2R1bGVOYW1lQXJnLHByb2Nlc3MuZW52LmxvYWRlckxlbmd0aEFyZyk7Il19
 | 
				
			||||||
							
								
								
									
										2
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,2 +1,2 @@
 | 
				
			|||||||
export declare let start: (moduleNameArg?: string, loaderLengthArg?: number) => void;
 | 
					export declare let start: (moduleNameArg?: string, loaderLengthArg?: string) => void;
 | 
				
			||||||
export declare let stop: () => void;
 | 
					export declare let stop: () => void;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										64
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							@@ -2,63 +2,21 @@
 | 
				
			|||||||
/// <reference path="./typings/index.d.ts" />
 | 
					/// <reference path="./typings/index.d.ts" />
 | 
				
			||||||
var colors = require("colors");
 | 
					var colors = require("colors");
 | 
				
			||||||
var readline = require("readline");
 | 
					var readline = require("readline");
 | 
				
			||||||
var rl;
 | 
					var childProcess = require("child_process");
 | 
				
			||||||
var initReadline = function () {
 | 
					var earlyChild;
 | 
				
			||||||
    rl = readline.createInterface({
 | 
					 | 
				
			||||||
        input: process.stdin,
 | 
					 | 
				
			||||||
        output: process.stdout
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
var moduleName;
 | 
					 | 
				
			||||||
var loaderLength;
 | 
					 | 
				
			||||||
var frameCounter = 0;
 | 
					 | 
				
			||||||
var makeFrame = function () {
 | 
					 | 
				
			||||||
    var resultString = "["
 | 
					 | 
				
			||||||
        + "/".green.repeat(frameCounter)
 | 
					 | 
				
			||||||
        + " ".repeat(loaderLength - frameCounter)
 | 
					 | 
				
			||||||
        + "]"
 | 
					 | 
				
			||||||
        + " starting "
 | 
					 | 
				
			||||||
        + moduleName.cyan;
 | 
					 | 
				
			||||||
    if (frameCounter == loaderLength) {
 | 
					 | 
				
			||||||
        frameCounter = 0;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else {
 | 
					 | 
				
			||||||
        frameCounter++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return resultString;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
var abort = true;
 | 
					 | 
				
			||||||
var logEarly = function () {
 | 
					 | 
				
			||||||
    rl.write(null, { ctrl: true, name: 'u' });
 | 
					 | 
				
			||||||
    rl.write(makeFrame());
 | 
					 | 
				
			||||||
    setTimeout(function () {
 | 
					 | 
				
			||||||
        if (!abort) {
 | 
					 | 
				
			||||||
            logEarly();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }, 200);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
// exports
 | 
					// exports
 | 
				
			||||||
exports.start = function (moduleNameArg, loaderLengthArg) {
 | 
					exports.start = function (moduleNameArg, loaderLengthArg) {
 | 
				
			||||||
    if (moduleNameArg === void 0) { moduleNameArg = ""; }
 | 
					    if (moduleNameArg === void 0) { moduleNameArg = ""; }
 | 
				
			||||||
    if (loaderLengthArg === void 0) { loaderLengthArg = 10; }
 | 
					    if (loaderLengthArg === void 0) { loaderLengthArg = "10"; }
 | 
				
			||||||
    abort = false;
 | 
					    earlyChild = childProcess.fork("./dist/early.child.js", [], {
 | 
				
			||||||
    moduleName = moduleNameArg;
 | 
					        env: {
 | 
				
			||||||
    loaderLength = loaderLengthArg;
 | 
					            moduleNameArg: moduleNameArg,
 | 
				
			||||||
    if (!process.env.CI) {
 | 
					            loaderLengthArg: loaderLengthArg
 | 
				
			||||||
        initReadline();
 | 
					        }
 | 
				
			||||||
        logEarly();
 | 
					    });
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else {
 | 
					 | 
				
			||||||
        console.log("**** starting " + moduleName.cyan + " ****");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    ;
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
exports.stop = function () {
 | 
					exports.stop = function () {
 | 
				
			||||||
    abort = true;
 | 
					    earlyChild.kill();
 | 
				
			||||||
    if (!process.env.CI) {
 | 
					 | 
				
			||||||
        rl.write(null, { ctrl: true, name: 'u' });
 | 
					 | 
				
			||||||
        rl.close();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,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IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuL3R5cGluZ3MvaW5kZXguZC50c1wiIC8+XHJcbmxldCBjb2xvcnMgPSByZXF1aXJlKFwiY29sb3JzXCIpO1xyXG5sZXQgcmVhZGxpbmUgPSByZXF1aXJlKFwicmVhZGxpbmVcIik7XHJcblxyXG5sZXQgcmw7IFxyXG5sZXQgaW5pdFJlYWRsaW5lID0gKCkgPT4ge1xyXG4gICAgcmwgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2Uoe1xyXG4gICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXHJcbiAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0XHJcbiAgICB9KTtcclxufTtcclxuXHJcbmxldCBtb2R1bGVOYW1lOnN0cmluZztcclxubGV0IGxvYWRlckxlbmd0aDpudW1iZXI7XHJcbmxldCBmcmFtZUNvdW50ZXI6bnVtYmVyID0gMDtcclxuXHJcbmxldCBtYWtlRnJhbWUgPSAoKTpzdHJpbmcgPT4ge1xyXG4gICAgbGV0IHJlc3VsdFN0cmluZzpzdHJpbmcgPSBcIltcIlxyXG4gICAgICAgICsgXCIvXCIuZ3JlZW4ucmVwZWF0KGZyYW1lQ291bnRlcilcclxuICAgICAgICArIFwiIFwiLnJlcGVhdChsb2FkZXJMZW5ndGggLSBmcmFtZUNvdW50ZXIpXHJcbiAgICAgICAgKyBcIl1cIlxyXG4gICAgICAgICsgXCIgc3RhcnRpbmcgXCJcclxuICAgICAgICArIG1vZHVsZU5hbWUuY3lhbjtcclxuXHJcbiAgICBpZihmcmFtZUNvdW50ZXIgPT0gbG9hZGVyTGVuZ3RoKXtcclxuICAgICAgICBmcmFtZUNvdW50ZXIgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBmcmFtZUNvdW50ZXIrKztcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHRTdHJpbmc7XHJcbn07XHJcblxyXG5sZXQgYWJvcnQ6Ym9vbGVhbiA9IHRydWU7XHJcbmxldCBsb2dFYXJseSA9ICgpID0+IHtcclxuICAgIHJsLndyaXRlKG51bGwsIHtjdHJsOiB0cnVlLCBuYW1lOiAndSd9KTtcclxuICAgIHJsLndyaXRlKG1ha2VGcmFtZSgpKTtcclxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuICAgICAgICBpZighYWJvcnQpe1xyXG4gICAgICAgICAgICBsb2dFYXJseSgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sMjAwKTtcclxufTtcclxuXHJcblxyXG4vLyBleHBvcnRzXHJcbmV4cG9ydCBsZXQgc3RhcnQgPSBmdW5jdGlvbihtb2R1bGVOYW1lQXJnOnN0cmluZyA9IFwiXCIsbG9hZGVyTGVuZ3RoQXJnOm51bWJlciA9IDEwKXtcclxuICAgIGFib3J0ID0gZmFsc2U7XHJcbiAgICBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZUFyZztcclxuICAgIGxvYWRlckxlbmd0aCA9IGxvYWRlckxlbmd0aEFyZztcclxuICAgIGlmICghcHJvY2Vzcy5lbnYuQ0kpe1xyXG4gICAgICAgIGluaXRSZWFkbGluZSgpO1xyXG4gICAgICAgIGxvZ0Vhcmx5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiKioqKiBzdGFydGluZyBcIiArIG1vZHVsZU5hbWUuY3lhbiArIFwiICoqKipcIik7XHJcbiAgICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGxldCBzdG9wID0gZnVuY3Rpb24oKXtcclxuICAgIGFib3J0ID0gdHJ1ZTtcclxuICAgIGlmICghcHJvY2Vzcy5lbnYuQ0kpe1xyXG4gICAgICAgIHJsLndyaXRlKG51bGwsIHtjdHJsOiB0cnVlLCBuYW1lOiAndSd9KTtcclxuICAgICAgICBybC5jbG9zZSgpO1xyXG4gICAgfVxyXG59O1xyXG5cclxuIl19
 | 
					//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw2Q0FBNkM7QUFDN0MsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQy9CLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUVuQyxJQUFPLFlBQVksV0FBVyxlQUFlLENBQUMsQ0FBQztBQUMvQyxJQUFJLFVBQVUsQ0FBQztBQUNmLFVBQVU7QUFDQyxhQUFLLEdBQUcsVUFBUyxhQUF5QixFQUFDLGVBQTZCO0lBQXZELDZCQUF5QixHQUF6QixrQkFBeUI7SUFBQywrQkFBNkIsR0FBN0Isc0JBQTZCO0lBQy9FLFVBQVUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFDLEVBQUUsRUFBQztRQUN0RCxHQUFHLEVBQUU7WUFDRCxhQUFhLEVBQUMsYUFBYTtZQUMzQixlQUFlLEVBQUMsZUFBZTtTQUNsQztLQUNKLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVTLFlBQUksR0FBRztJQUNkLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QixDQUFDLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90eXBpbmdzL2luZGV4LmQudHNcIiAvPlxyXG5sZXQgY29sb3JzID0gcmVxdWlyZShcImNvbG9yc1wiKTtcclxubGV0IHJlYWRsaW5lID0gcmVxdWlyZShcInJlYWRsaW5lXCIpO1xyXG5cclxuaW1wb3J0IGNoaWxkUHJvY2VzcyA9IHJlcXVpcmUoXCJjaGlsZF9wcm9jZXNzXCIpO1xyXG5sZXQgZWFybHlDaGlsZDtcclxuLy8gZXhwb3J0c1xyXG5leHBvcnQgbGV0IHN0YXJ0ID0gZnVuY3Rpb24obW9kdWxlTmFtZUFyZzpzdHJpbmcgPSBcIlwiLGxvYWRlckxlbmd0aEFyZzpzdHJpbmcgPSBcIjEwXCIpe1xyXG4gICAgZWFybHlDaGlsZCA9IGNoaWxkUHJvY2Vzcy5mb3JrKFwiLi9kaXN0L2Vhcmx5LmNoaWxkLmpzXCIsW10se1xyXG4gICAgICAgIGVudjoge1xyXG4gICAgICAgICAgICBtb2R1bGVOYW1lQXJnOm1vZHVsZU5hbWVBcmcsXHJcbiAgICAgICAgICAgIGxvYWRlckxlbmd0aEFyZzpsb2FkZXJMZW5ndGhBcmdcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBsZXQgc3RvcCA9IGZ1bmN0aW9uKCl7XHJcbiAgICBlYXJseUNoaWxkLmtpbGwoKTtcclxufTtcclxuXHJcbiJdfQ==
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										52
									
								
								ts/early.child.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								ts/early.child.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					/// <reference path="./typings/index.d.ts" />
 | 
				
			||||||
 | 
					let colors = require("colors");
 | 
				
			||||||
 | 
					import readline = require("readline");
 | 
				
			||||||
 | 
					let rl; 
 | 
				
			||||||
 | 
					let initReadline = () => {
 | 
				
			||||||
 | 
					    rl = readline.createInterface({
 | 
				
			||||||
 | 
					    input: process.stdin,
 | 
				
			||||||
 | 
					    output: process.stdout
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let moduleName:string;
 | 
				
			||||||
 | 
					let loaderLength:number;
 | 
				
			||||||
 | 
					let frameCounter:number = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let makeFrame = ():string => {
 | 
				
			||||||
 | 
					    let resultString:string = "["
 | 
				
			||||||
 | 
					        + "/".green.repeat(frameCounter)
 | 
				
			||||||
 | 
					        + " ".repeat(loaderLength - frameCounter)
 | 
				
			||||||
 | 
					        + "]"
 | 
				
			||||||
 | 
					        + " starting "
 | 
				
			||||||
 | 
					        + moduleName.cyan;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(frameCounter == loaderLength){
 | 
				
			||||||
 | 
					        frameCounter = 0;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        frameCounter++;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return resultString;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let logEarly = () => {
 | 
				
			||||||
 | 
					    rl.write(null, {ctrl: true, name: 'u'});
 | 
				
			||||||
 | 
					    rl.write(makeFrame());
 | 
				
			||||||
 | 
					    setTimeout(function(){
 | 
				
			||||||
 | 
					        logEarly();
 | 
				
			||||||
 | 
					    },200);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let start = function(moduleNameArg:string = "",loaderLengthArg:string = "10"){
 | 
				
			||||||
 | 
					    console.log(moduleNameArg);
 | 
				
			||||||
 | 
					    moduleName = moduleNameArg;
 | 
				
			||||||
 | 
					    loaderLength = parseInt(loaderLengthArg);
 | 
				
			||||||
 | 
					    if (!process.env.CI){
 | 
				
			||||||
 | 
					        initReadline();
 | 
				
			||||||
 | 
					        logEarly();
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        console.log("**** starting " + moduleName.cyan + " ****");
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start(process.env.moduleNameArg,process.env.loaderLengthArg);
 | 
				
			||||||
							
								
								
									
										65
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								ts/index.ts
									
									
									
									
									
								
							@@ -2,64 +2,19 @@
 | 
				
			|||||||
let colors = require("colors");
 | 
					let colors = require("colors");
 | 
				
			||||||
let readline = require("readline");
 | 
					let readline = require("readline");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let rl; 
 | 
					import childProcess = require("child_process");
 | 
				
			||||||
let initReadline = () => {
 | 
					let earlyChild;
 | 
				
			||||||
    rl = readline.createInterface({
 | 
					// exports
 | 
				
			||||||
    input: process.stdin,
 | 
					export let start = function(moduleNameArg:string = "",loaderLengthArg:string = "10"){
 | 
				
			||||||
    output: process.stdout
 | 
					    earlyChild = childProcess.fork("./dist/early.child.js",[],{
 | 
				
			||||||
 | 
					        env: {
 | 
				
			||||||
 | 
					            moduleNameArg:moduleNameArg,
 | 
				
			||||||
 | 
					            loaderLengthArg:loaderLengthArg
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let moduleName:string;
 | 
					 | 
				
			||||||
let loaderLength:number;
 | 
					 | 
				
			||||||
let frameCounter:number = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
let makeFrame = ():string => {
 | 
					 | 
				
			||||||
    let resultString:string = "["
 | 
					 | 
				
			||||||
        + "/".green.repeat(frameCounter)
 | 
					 | 
				
			||||||
        + " ".repeat(loaderLength - frameCounter)
 | 
					 | 
				
			||||||
        + "]"
 | 
					 | 
				
			||||||
        + " starting "
 | 
					 | 
				
			||||||
        + moduleName.cyan;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if(frameCounter == loaderLength){
 | 
					 | 
				
			||||||
        frameCounter = 0;
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        frameCounter++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return resultString;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
let abort:boolean = true;
 | 
					 | 
				
			||||||
let logEarly = () => {
 | 
					 | 
				
			||||||
    rl.write(null, {ctrl: true, name: 'u'});
 | 
					 | 
				
			||||||
    rl.write(makeFrame());
 | 
					 | 
				
			||||||
    setTimeout(function(){
 | 
					 | 
				
			||||||
        if(!abort){
 | 
					 | 
				
			||||||
            logEarly();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },200);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// exports
 | 
					 | 
				
			||||||
export let start = function(moduleNameArg:string = "",loaderLengthArg:number = 10){
 | 
					 | 
				
			||||||
    abort = false;
 | 
					 | 
				
			||||||
    moduleName = moduleNameArg;
 | 
					 | 
				
			||||||
    loaderLength = loaderLengthArg;
 | 
					 | 
				
			||||||
    if (!process.env.CI){
 | 
					 | 
				
			||||||
        initReadline();
 | 
					 | 
				
			||||||
        logEarly();
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        console.log("**** starting " + moduleName.cyan + " ****");
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export let stop = function(){
 | 
					export let stop = function(){
 | 
				
			||||||
    abort = true;
 | 
					    earlyChild.kill();
 | 
				
			||||||
    if (!process.env.CI){
 | 
					 | 
				
			||||||
        rl.write(null, {ctrl: true, name: 'u'});
 | 
					 | 
				
			||||||
        rl.close();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user