Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
102d384de5 | |||
1ceae01a49 | |||
7f4adbfe9f | |||
eb72e2dccc | |||
839c80f5dd | |||
e7e96972ad | |||
799c2a58ca | |||
1955dadba3 | |||
c14fadadf7 | |||
3f1a05d3e0 | |||
5908dc8b6f | |||
d7ecf8e320 | |||
8b73f7a6bb | |||
00d9ad0af1 | |||
ef20c00999 | |||
4dab0f250a |
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
node_modules/
|
||||||
|
docs/
|
||||||
|
coverage/
|
||||||
|
ts/typings/
|
4
.npmignore
Normal file
4
.npmignore
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
docs/
|
||||||
|
coverage/
|
||||||
|
ts/typings/
|
||||||
|
.travis.yml
|
12
.travis.yml
Normal file
12
.travis.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- '4'
|
||||||
|
- stable
|
||||||
|
deploy:
|
||||||
|
provider: npm
|
||||||
|
email: npm@lossless.digital
|
||||||
|
api_key:
|
||||||
|
secure: WmJJw1aJ1kbTOtArdBvgtYEcEk2899hiPc/XnCoUrHz45DAgnAES4eVUbhI5AC78tjnKc+iqbB9e5+vziSW4G5P4KAuP0CYLd5v4G5ZC4IYigFPxroIib7wFtGoOlhe8AItLDMdYO2KcPYXVpZzaITj2FlfNjoqg5UiKnSVShKwUALQk6JdZ345d0iwyr2nmNA6m0FJhcO2weY3BEDRyPWuody/FEoVZ3I2Q1f3R50v3Kb7Nzfn0uob5ABjux4YZ4xJ6tNeJkU021tSgJhjqfwbVMoIVJohwa5jlaqXdMQvWWKvhOAFyDj6zOJ1BnIuVYltDoWczuPi3+YVtFoc2+rYdSXYUcK1aCfVQZ8DDYYzlZ9Sp1vxiy8D3RZuNkLzUImranCDl6r6EYTxEw2L2bAowo9wLZtnht/mlRvOOLM9ZYVi0yr7Cd9FhVfiLZO97OGybfTFvih+nbMZGk5/RVeQzYzsycgeNT96ii5+de0yerbD690Qf+Kap5IlS5Fyvo2Y/SVQ3nxgQt7Pa4bTLbMwzSmXoBgUO6j6d8Qv7fPGQvbOQJEGJaZDaqpgxxS7WIc2YtwLXXob757BxKNW6Y6xPCcTqX7lMqfyQa194EjPTNTK+O0YnGAFFnXps/uCc8ccH3z3x6IrAAQpPx68gPERiWMf2WiPsMoh+kH4UzLc=
|
||||||
|
on:
|
||||||
|
tags: true
|
||||||
|
repo: pushrocks/early
|
15
README.md
15
README.md
@ -1,12 +1,15 @@
|
|||||||
# early
|
# early
|
||||||
nice module loading animation for modules that need a little starting time.
|
minimal and fast loading animation for modules that need a little starting time.
|
||||||
|
|
||||||
> **note: this package is NOT READY YET**
|
## Usage
|
||||||
|
|
||||||
```typscript
|
```typescript
|
||||||
|
// Put the following at the start of your module
|
||||||
import * as early from "early";
|
import * as early from "early";
|
||||||
early.start();
|
early.start("myModuleName");
|
||||||
// do your loading stuff
|
/*
|
||||||
early.stop();
|
do your loading stuff
|
||||||
|
*/
|
||||||
|
early.stop(); // stop "early" when your module is ready
|
||||||
```
|
```
|
||||||
|
|
||||||
|
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
Normal file
2
dist/index.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
export declare let start: (moduleNameArg?: string, loaderLengthArg?: string) => void;
|
||||||
|
export declare let stop: () => void;
|
22
dist/index.js
vendored
Normal file
22
dist/index.js
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
"use strict";
|
||||||
|
/// <reference path="./typings/index.d.ts" />
|
||||||
|
var colors = require("colors");
|
||||||
|
var readline = require("readline");
|
||||||
|
var childProcess = require("child_process");
|
||||||
|
var earlyChild;
|
||||||
|
// exports
|
||||||
|
exports.start = function (moduleNameArg, loaderLengthArg) {
|
||||||
|
if (moduleNameArg === void 0) { moduleNameArg = ""; }
|
||||||
|
if (loaderLengthArg === void 0) { loaderLengthArg = "10"; }
|
||||||
|
earlyChild = childProcess.fork("./dist/early.child.js", [], {
|
||||||
|
env: {
|
||||||
|
moduleNameArg: moduleNameArg,
|
||||||
|
loaderLengthArg: loaderLengthArg
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
exports.stop = function () {
|
||||||
|
earlyChild.kill();
|
||||||
|
};
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw2Q0FBNkM7QUFDN0MsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQy9CLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUVuQyxJQUFPLFlBQVksV0FBVyxlQUFlLENBQUMsQ0FBQztBQUMvQyxJQUFJLFVBQVUsQ0FBQztBQUNmLFVBQVU7QUFDQyxhQUFLLEdBQUcsVUFBUyxhQUF5QixFQUFDLGVBQTZCO0lBQXZELDZCQUF5QixHQUF6QixrQkFBeUI7SUFBQywrQkFBNkIsR0FBN0Isc0JBQTZCO0lBQy9FLFVBQVUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFDLEVBQUUsRUFBQztRQUN0RCxHQUFHLEVBQUU7WUFDRCxhQUFhLEVBQUMsYUFBYTtZQUMzQixlQUFlLEVBQUMsZUFBZTtTQUNsQztLQUNKLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVTLFlBQUksR0FBRztJQUNkLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QixDQUFDLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90eXBpbmdzL2luZGV4LmQudHNcIiAvPlxyXG5sZXQgY29sb3JzID0gcmVxdWlyZShcImNvbG9yc1wiKTtcclxubGV0IHJlYWRsaW5lID0gcmVxdWlyZShcInJlYWRsaW5lXCIpO1xyXG5cclxuaW1wb3J0IGNoaWxkUHJvY2VzcyA9IHJlcXVpcmUoXCJjaGlsZF9wcm9jZXNzXCIpO1xyXG5sZXQgZWFybHlDaGlsZDtcclxuLy8gZXhwb3J0c1xyXG5leHBvcnQgbGV0IHN0YXJ0ID0gZnVuY3Rpb24obW9kdWxlTmFtZUFyZzpzdHJpbmcgPSBcIlwiLGxvYWRlckxlbmd0aEFyZzpzdHJpbmcgPSBcIjEwXCIpe1xyXG4gICAgZWFybHlDaGlsZCA9IGNoaWxkUHJvY2Vzcy5mb3JrKFwiLi9kaXN0L2Vhcmx5LmNoaWxkLmpzXCIsW10se1xyXG4gICAgICAgIGVudjoge1xyXG4gICAgICAgICAgICBtb2R1bGVOYW1lQXJnOm1vZHVsZU5hbWVBcmcsXHJcbiAgICAgICAgICAgIGxvYWRlckxlbmd0aEFyZzpsb2FkZXJMZW5ndGhBcmdcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBsZXQgc3RvcCA9IGZ1bmN0aW9uKCl7XHJcbiAgICBlYXJseUNoaWxkLmtpbGwoKTtcclxufTtcclxuXHJcbiJdfQ==
|
4
npmts.json
Normal file
4
npmts.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"mode":"default",
|
||||||
|
"coverageTreshold":30
|
||||||
|
}
|
11
package.json
11
package.json
@ -1,8 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "early",
|
"name": "early",
|
||||||
"version": "1.0.1",
|
"version": "1.0.8",
|
||||||
"description": "nice module loading animation for modules that need a little starting time.",
|
"description": "nice module loading animation for modules that need a little starting time.",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
"typings": "dist/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "(npmts)"
|
"test": "(npmts)"
|
||||||
},
|
},
|
||||||
@ -18,5 +19,11 @@
|
|||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/pushrocks/early/issues"
|
"url": "https://github.com/pushrocks/early/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/pushrocks/early#readme"
|
"homepage": "https://github.com/pushrocks/early#readme",
|
||||||
|
"devDependencies": {
|
||||||
|
"npmts": "^5.1.9"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"colors": "^1.1.2"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
0
test/test.d.ts
vendored
Normal file
0
test/test.d.ts
vendored
Normal file
15
test/test.js
Normal file
15
test/test.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
"use strict";
|
||||||
|
/// <reference path="../ts/typings/index.d.ts" />
|
||||||
|
var early = require("../dist/index.js");
|
||||||
|
describe("early", function () {
|
||||||
|
it(".start()", function (done) {
|
||||||
|
this.timeout(10000);
|
||||||
|
early.start("early");
|
||||||
|
setTimeout(done, 5000);
|
||||||
|
});
|
||||||
|
it(".stop()", function () {
|
||||||
|
early.stop();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlEQUFpRDtBQUNqRCxJQUFPLEtBQUssV0FBVyxrQkFBa0IsQ0FBQyxDQUFDO0FBRTNDLFFBQVEsQ0FBQyxPQUFPLEVBQUM7SUFDYixFQUFFLENBQUMsVUFBVSxFQUFDLFVBQVMsSUFBSTtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsVUFBVSxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyxTQUFTLEVBQUM7UUFDVCxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQSIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3RzL3R5cGluZ3MvaW5kZXguZC50c1wiIC8+XHJcbmltcG9ydCBlYXJseSA9IHJlcXVpcmUoXCIuLi9kaXN0L2luZGV4LmpzXCIpO1xyXG5cclxuZGVzY3JpYmUoXCJlYXJseVwiLGZ1bmN0aW9uKCl7XHJcbiAgICBpdChcIi5zdGFydCgpXCIsZnVuY3Rpb24oZG9uZSl7XHJcbiAgICAgICAgdGhpcy50aW1lb3V0KDEwMDAwKTtcclxuICAgICAgICBlYXJseS5zdGFydChcImVhcmx5XCIpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoZG9uZSw1MDAwKTtcclxuICAgIH0pO1xyXG4gICAgaXQoXCIuc3RvcCgpXCIsZnVuY3Rpb24oKXtcclxuICAgICAgICBlYXJseS5zdG9wKCk7XHJcbiAgICB9KVxyXG59KSJdfQ==
|
13
test/test.ts
Normal file
13
test/test.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/// <reference path="../ts/typings/index.d.ts" />
|
||||||
|
import early = require("../dist/index.js");
|
||||||
|
|
||||||
|
describe("early",function(){
|
||||||
|
it(".start()",function(done){
|
||||||
|
this.timeout(10000);
|
||||||
|
early.start("early");
|
||||||
|
setTimeout(done,5000);
|
||||||
|
});
|
||||||
|
it(".stop()",function(){
|
||||||
|
early.stop();
|
||||||
|
})
|
||||||
|
})
|
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);
|
20
ts/index.ts
Normal file
20
ts/index.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/// <reference path="./typings/index.d.ts" />
|
||||||
|
let colors = require("colors");
|
||||||
|
let readline = require("readline");
|
||||||
|
|
||||||
|
import childProcess = require("child_process");
|
||||||
|
let earlyChild;
|
||||||
|
// exports
|
||||||
|
export let start = function(moduleNameArg:string = "",loaderLengthArg:string = "10"){
|
||||||
|
earlyChild = childProcess.fork("./dist/early.child.js",[],{
|
||||||
|
env: {
|
||||||
|
moduleNameArg:moduleNameArg,
|
||||||
|
loaderLengthArg:loaderLengthArg
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export let stop = function(){
|
||||||
|
earlyChild.kill();
|
||||||
|
};
|
||||||
|
|
6
ts/typings.json
Normal file
6
ts/typings.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"globalDependencies": {
|
||||||
|
"colors": "registry:dt/colors#0.6.0-1+20160501135139",
|
||||||
|
"node": "registry:dt/node#6.0.0+20160514165920"
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user