Compare commits
20 Commits
Author | SHA1 | Date | |
---|---|---|---|
ffbfc29628 | |||
9c6e452801 | |||
96c421e96e | |||
84af99ba80 | |||
6bb20dbc7b | |||
66a7fc2afe | |||
a42faf36d2 | |||
6db7cc0e14 | |||
102d384de5 | |||
1ceae01a49 | |||
7f4adbfe9f | |||
eb72e2dccc | |||
839c80f5dd | |||
e7e96972ad | |||
799c2a58ca | |||
1955dadba3 | |||
c14fadadf7 | |||
3f1a05d3e0 | |||
5908dc8b6f | |||
d7ecf8e320 |
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();
|
||||||
|
}, 80);
|
||||||
|
};
|
||||||
|
var start = function (moduleNameArg, loaderLengthArg) {
|
||||||
|
if (moduleNameArg === void 0) { moduleNameArg = ""; }
|
||||||
|
if (loaderLengthArg === void 0) { loaderLengthArg = "10"; }
|
||||||
|
console.log(process.env.CI);
|
||||||
|
moduleName = moduleNameArg;
|
||||||
|
loaderLength = parseInt(loaderLengthArg);
|
||||||
|
if (process.env.CI == "undefined") {
|
||||||
|
initReadline();
|
||||||
|
logEarly();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("**** starting " + moduleName.cyan + " ****");
|
||||||
|
}
|
||||||
|
;
|
||||||
|
};
|
||||||
|
start(process.env.moduleNameArg, process.env.loaderLengthArg);
|
||||||
|
|
||||||
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVhcmx5LmNoaWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw2Q0FBNkM7QUFDN0MsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQy9CLElBQU8sUUFBUSxXQUFXLFVBQVUsQ0FBQyxDQUFDO0FBQ3RDLElBQUksRUFBRSxDQUFDO0FBQ1AsSUFBSSxZQUFZLEdBQUc7SUFDZixFQUFFLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUM5QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO0tBQ3JCLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVGLElBQUksVUFBaUIsQ0FBQztBQUN0QixJQUFJLFlBQW1CLENBQUM7QUFDeEIsSUFBSSxZQUFZLEdBQVUsQ0FBQyxDQUFDO0FBRTVCLElBQUksU0FBUyxHQUFHO0lBQ1osSUFBSSxZQUFZLEdBQVUsR0FBRztVQUN2QixHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7VUFDOUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1VBQ3ZDLEdBQUc7VUFDSCxZQUFZO1VBQ1osVUFBVSxDQUFDLElBQUksQ0FBQztJQUV0QixFQUFFLENBQUEsQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLENBQUEsQ0FBQztRQUM3QixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLFlBQVksRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLENBQUMsWUFBWSxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLElBQUksUUFBUSxHQUFHO0lBQ1gsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ3hDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN0QixVQUFVLENBQUM7UUFDUCxRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztBQUNWLENBQUMsQ0FBQztBQUVGLElBQUksS0FBSyxHQUFHLFVBQVMsYUFBeUIsRUFBQyxlQUE2QjtJQUF2RCw2QkFBeUIsR0FBekIsa0JBQXlCO0lBQUMsK0JBQTZCLEdBQTdCLHNCQUE2QjtJQUN4RSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDM0IsVUFBVSxHQUFHLGFBQWEsQ0FBQztJQUMzQixZQUFZLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7UUFDL0IsWUFBWSxFQUFFLENBQUM7UUFDZixRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQUEsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDIiwiZmlsZSI6ImVhcmx5LmNoaWxkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9pbmRleC5kLnRzXCIgLz5cclxubGV0IGNvbG9ycyA9IHJlcXVpcmUoXCJjb2xvcnNcIik7XHJcbmltcG9ydCByZWFkbGluZSA9IHJlcXVpcmUoXCJyZWFkbGluZVwiKTtcclxubGV0IHJsOyBcclxubGV0IGluaXRSZWFkbGluZSA9ICgpID0+IHtcclxuICAgIHJsID0gcmVhZGxpbmUuY3JlYXRlSW50ZXJmYWNlKHtcclxuICAgIGlucHV0OiBwcm9jZXNzLnN0ZGluLFxyXG4gICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dFxyXG4gICAgfSk7XHJcbn07XHJcblxyXG5sZXQgbW9kdWxlTmFtZTpzdHJpbmc7XHJcbmxldCBsb2FkZXJMZW5ndGg6bnVtYmVyO1xyXG5sZXQgZnJhbWVDb3VudGVyOm51bWJlciA9IDA7XHJcblxyXG5sZXQgbWFrZUZyYW1lID0gKCk6c3RyaW5nID0+IHtcclxuICAgIGxldCByZXN1bHRTdHJpbmc6c3RyaW5nID0gXCJbXCJcclxuICAgICAgICArIFwiL1wiLmdyZWVuLnJlcGVhdChmcmFtZUNvdW50ZXIpXHJcbiAgICAgICAgKyBcIiBcIi5yZXBlYXQobG9hZGVyTGVuZ3RoIC0gZnJhbWVDb3VudGVyKVxyXG4gICAgICAgICsgXCJdXCJcclxuICAgICAgICArIFwiIHN0YXJ0aW5nIFwiXHJcbiAgICAgICAgKyBtb2R1bGVOYW1lLmN5YW47XHJcblxyXG4gICAgaWYoZnJhbWVDb3VudGVyID09IGxvYWRlckxlbmd0aCl7XHJcbiAgICAgICAgZnJhbWVDb3VudGVyID0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZnJhbWVDb3VudGVyKys7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0U3RyaW5nO1xyXG59O1xyXG5cclxubGV0IGxvZ0Vhcmx5ID0gKCkgPT4ge1xyXG4gICAgcmwud3JpdGUobnVsbCwge2N0cmw6IHRydWUsIG5hbWU6ICd1J30pO1xyXG4gICAgcmwud3JpdGUobWFrZUZyYW1lKCkpO1xyXG4gICAgc2V0VGltZW91dChmdW5jdGlvbigpe1xyXG4gICAgICAgIGxvZ0Vhcmx5KCk7XHJcbiAgICB9LDgwKTtcclxufTtcclxuXHJcbmxldCBzdGFydCA9IGZ1bmN0aW9uKG1vZHVsZU5hbWVBcmc6c3RyaW5nID0gXCJcIixsb2FkZXJMZW5ndGhBcmc6c3RyaW5nID0gXCIxMFwiKXtcclxuICAgIGNvbnNvbGUubG9nKHByb2Nlc3MuZW52LkNJKVxyXG4gICAgbW9kdWxlTmFtZSA9IG1vZHVsZU5hbWVBcmc7XHJcbiAgICBsb2FkZXJMZW5ndGggPSBwYXJzZUludChsb2FkZXJMZW5ndGhBcmcpO1xyXG4gICAgaWYgKHByb2Nlc3MuZW52LkNJID09IFwidW5kZWZpbmVkXCIpe1xyXG4gICAgICAgIGluaXRSZWFkbGluZSgpO1xyXG4gICAgICAgIGxvZ0Vhcmx5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiKioqKiBzdGFydGluZyBcIiArIG1vZHVsZU5hbWUuY3lhbiArIFwiICoqKipcIik7XHJcbiAgICB9O1xyXG59O1xyXG5cclxuc3RhcnQocHJvY2Vzcy5lbnYubW9kdWxlTmFtZUFyZyxwcm9jZXNzLmVudi5sb2FkZXJMZW5ndGhBcmcpOyJdfQ==
|
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;
|
||||||
|
58
dist/index.js
vendored
58
dist/index.js
vendored
@ -1,51 +1,21 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
/// <reference path="./typings/index.d.ts" />
|
var path = require("path");
|
||||||
var colors = require("colors");
|
var childProcess = require("child_process");
|
||||||
var readline = require("readline");
|
var earlyChild;
|
||||||
var 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 (loaderLengthArg === void 0) { loaderLengthArg = 10; }
|
if (moduleNameArg === void 0) { moduleNameArg = ""; }
|
||||||
abort = false;
|
if (loaderLengthArg === void 0) { loaderLengthArg = "10"; }
|
||||||
moduleName = moduleNameArg;
|
earlyChild = childProcess.fork(path.join(__dirname, "early.child.js"), [], {
|
||||||
loaderLength = loaderLengthArg;
|
env: {
|
||||||
logEarly();
|
moduleNameArg: moduleNameArg,
|
||||||
|
loaderLengthArg: loaderLengthArg,
|
||||||
|
CI: process.env.CI
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
exports.stop = function () {
|
exports.stop = function () {
|
||||||
abort = true;
|
earlyChild.kill();
|
||||||
rl.write(null, { ctrl: true, name: 'u' });
|
|
||||||
rl.close();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw2Q0FBNkM7QUFDN0MsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQy9CLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUVuQyxJQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ2xDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztJQUNwQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07Q0FDdkIsQ0FBQyxDQUFDO0FBRUgsSUFBSSxVQUFpQixDQUFDO0FBQ3RCLElBQUksWUFBbUIsQ0FBQztBQUN4QixJQUFJLFlBQVksR0FBVSxDQUFDLENBQUM7QUFFNUIsSUFBSSxTQUFTLEdBQUc7SUFDWixJQUFJLFlBQVksR0FBVSxHQUFHO1VBQ3ZCLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztVQUM5QixHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7VUFDdkMsR0FBRztVQUNILFlBQVk7VUFDWixVQUFVLENBQUMsSUFBSSxDQUFDO0lBRXRCLEVBQUUsQ0FBQSxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQSxDQUFDO1FBQzdCLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osWUFBWSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUYsSUFBSSxLQUFLLEdBQVcsSUFBSSxDQUFDO0FBQ3pCLElBQUksUUFBUSxHQUFHO0lBQ1gsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ3hDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN0QixVQUFVLENBQUM7UUFDUCxFQUFFLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUM7WUFDUCxRQUFRLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDTCxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUM7QUFHRixVQUFVO0FBQ0MsYUFBSyxHQUFHLFVBQVMsYUFBb0IsRUFBQyxlQUEyQjtJQUEzQiwrQkFBMkIsR0FBM0Isb0JBQTJCO0lBQ3hFLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxVQUFVLEdBQUcsYUFBYSxDQUFDO0lBQzNCLFlBQVksR0FBRyxlQUFlLENBQUM7SUFDL0IsUUFBUSxFQUFFLENBQUM7QUFDZixDQUFDLENBQUM7QUFFUyxZQUFJLEdBQUc7SUFDZCxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ2IsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ3hDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNmLENBQUMsQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuL3R5cGluZ3MvaW5kZXguZC50c1wiIC8+XHJcbmxldCBjb2xvcnMgPSByZXF1aXJlKFwiY29sb3JzXCIpO1xyXG5sZXQgcmVhZGxpbmUgPSByZXF1aXJlKFwicmVhZGxpbmVcIik7XHJcblxyXG5jb25zdCBybCA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7XHJcbiAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXHJcbiAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dFxyXG59KTtcclxuXHJcbmxldCBtb2R1bGVOYW1lOnN0cmluZztcclxubGV0IGxvYWRlckxlbmd0aDpudW1iZXI7XHJcbmxldCBmcmFtZUNvdW50ZXI6bnVtYmVyID0gMDtcclxuXHJcbmxldCBtYWtlRnJhbWUgPSAoKTpzdHJpbmcgPT4ge1xyXG4gICAgbGV0IHJlc3VsdFN0cmluZzpzdHJpbmcgPSBcIltcIlxyXG4gICAgICAgICsgXCIvXCIuZ3JlZW4ucmVwZWF0KGZyYW1lQ291bnRlcilcclxuICAgICAgICArIFwiIFwiLnJlcGVhdChsb2FkZXJMZW5ndGggLSBmcmFtZUNvdW50ZXIpXHJcbiAgICAgICAgKyBcIl1cIlxyXG4gICAgICAgICsgXCIgc3RhcnRpbmcgXCJcclxuICAgICAgICArIG1vZHVsZU5hbWUuY3lhbjtcclxuXHJcbiAgICBpZihmcmFtZUNvdW50ZXIgPT0gbG9hZGVyTGVuZ3RoKXtcclxuICAgICAgICBmcmFtZUNvdW50ZXIgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBmcmFtZUNvdW50ZXIrKztcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHRTdHJpbmc7XHJcbn07XHJcblxyXG5sZXQgYWJvcnQ6Ym9vbGVhbiA9IHRydWU7XHJcbmxldCBsb2dFYXJseSA9ICgpID0+IHtcclxuICAgIHJsLndyaXRlKG51bGwsIHtjdHJsOiB0cnVlLCBuYW1lOiAndSd9KTtcclxuICAgIHJsLndyaXRlKG1ha2VGcmFtZSgpKTtcclxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuICAgICAgICBpZighYWJvcnQpe1xyXG4gICAgICAgICAgICBsb2dFYXJseSgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sMjAwKTtcclxufTtcclxuXHJcblxyXG4vLyBleHBvcnRzXHJcbmV4cG9ydCBsZXQgc3RhcnQgPSBmdW5jdGlvbihtb2R1bGVOYW1lQXJnOnN0cmluZyxsb2FkZXJMZW5ndGhBcmc6bnVtYmVyID0gMTApe1xyXG4gICAgYWJvcnQgPSBmYWxzZTtcclxuICAgIG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lQXJnO1xyXG4gICAgbG9hZGVyTGVuZ3RoID0gbG9hZGVyTGVuZ3RoQXJnO1xyXG4gICAgbG9nRWFybHkoKTtcclxufTtcclxuXHJcbmV4cG9ydCBsZXQgc3RvcCA9IGZ1bmN0aW9uKCl7XHJcbiAgICBhYm9ydCA9IHRydWU7XHJcbiAgICBybC53cml0ZShudWxsLCB7Y3RybDogdHJ1ZSwgbmFtZTogJ3UnfSk7XHJcbiAgICBybC5jbG9zZSgpO1xyXG59O1xyXG5cclxuIl19
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFPLElBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUU5QixJQUFPLFlBQVksV0FBVyxlQUFlLENBQUMsQ0FBQztBQUMvQyxJQUFJLFVBQVUsQ0FBQztBQUNmLFVBQVU7QUFDQyxhQUFLLEdBQUcsVUFBUyxhQUF5QixFQUFDLGVBQTZCO0lBQXZELDZCQUF5QixHQUF6QixrQkFBeUI7SUFBQywrQkFBNkIsR0FBN0Isc0JBQTZCO0lBQy9FLFVBQVUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLGdCQUFnQixDQUFDLEVBQUMsRUFBRSxFQUFDO1FBQ3BFLEdBQUcsRUFBRTtZQUNELGFBQWEsRUFBQyxhQUFhO1lBQzNCLGVBQWUsRUFBQyxlQUFlO1lBQy9CLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7U0FDckI7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFUyxZQUFJLEdBQUc7SUFDZCxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdEIsQ0FBQyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9pbmRleC5kLnRzXCIgLz5cclxuaW1wb3J0IGNvbG9ycyA9IHJlcXVpcmUoXCJjb2xvcnNcIik7XHJcbmltcG9ydCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcblxyXG5pbXBvcnQgY2hpbGRQcm9jZXNzID0gcmVxdWlyZShcImNoaWxkX3Byb2Nlc3NcIik7XHJcbmxldCBlYXJseUNoaWxkO1xyXG4vLyBleHBvcnRzXHJcbmV4cG9ydCBsZXQgc3RhcnQgPSBmdW5jdGlvbihtb2R1bGVOYW1lQXJnOnN0cmluZyA9IFwiXCIsbG9hZGVyTGVuZ3RoQXJnOnN0cmluZyA9IFwiMTBcIil7XHJcbiAgICBlYXJseUNoaWxkID0gY2hpbGRQcm9jZXNzLmZvcmsocGF0aC5qb2luKF9fZGlybmFtZSxcImVhcmx5LmNoaWxkLmpzXCIpLFtdLHtcclxuICAgICAgICBlbnY6IHtcclxuICAgICAgICAgICAgbW9kdWxlTmFtZUFyZzptb2R1bGVOYW1lQXJnLFxyXG4gICAgICAgICAgICBsb2FkZXJMZW5ndGhBcmc6bG9hZGVyTGVuZ3RoQXJnLFxyXG4gICAgICAgICAgICBDSTogcHJvY2Vzcy5lbnYuQ0lcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBsZXQgc3RvcCA9IGZ1bmN0aW9uKCl7XHJcbiAgICBlYXJseUNoaWxkLmtpbGwoKTtcclxufTtcclxuXHJcbiJdfQ==
|
||||||
|
4
npmts.json
Normal file
4
npmts.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"mode":"default",
|
||||||
|
"coverageTreshold":30
|
||||||
|
}
|
@ -1,8 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "early",
|
"name": "early",
|
||||||
"version": "1.0.2",
|
"version": "1.0.12",
|
||||||
"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)"
|
||||||
},
|
},
|
||||||
|
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();
|
||||||
|
},80);
|
||||||
|
};
|
||||||
|
|
||||||
|
let start = function(moduleNameArg:string = "",loaderLengthArg:string = "10"){
|
||||||
|
console.log(process.env.CI)
|
||||||
|
moduleName = moduleNameArg;
|
||||||
|
loaderLength = parseInt(loaderLengthArg);
|
||||||
|
if (process.env.CI == "undefined"){
|
||||||
|
initReadline();
|
||||||
|
logEarly();
|
||||||
|
} else {
|
||||||
|
console.log("**** starting " + moduleName.cyan + " ****");
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
start(process.env.moduleNameArg,process.env.loaderLengthArg);
|
60
ts/index.ts
60
ts/index.ts
@ -1,55 +1,21 @@
|
|||||||
/// <reference path="./typings/index.d.ts" />
|
/// <reference path="./typings/index.d.ts" />
|
||||||
let colors = require("colors");
|
import colors = require("colors");
|
||||||
let readline = require("readline");
|
import path = require("path");
|
||||||
|
|
||||||
const 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 abort:boolean = true;
|
|
||||||
let logEarly = () => {
|
|
||||||
rl.write(null, {ctrl: true, name: 'u'});
|
|
||||||
rl.write(makeFrame());
|
|
||||||
setTimeout(function(){
|
|
||||||
if(!abort){
|
|
||||||
logEarly();
|
|
||||||
}
|
|
||||||
},200);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
import childProcess = require("child_process");
|
||||||
|
let earlyChild;
|
||||||
// exports
|
// exports
|
||||||
export let start = function(moduleNameArg:string,loaderLengthArg:number = 10){
|
export let start = function(moduleNameArg:string = "",loaderLengthArg:string = "10"){
|
||||||
abort = false;
|
earlyChild = childProcess.fork(path.join(__dirname,"early.child.js"),[],{
|
||||||
moduleName = moduleNameArg;
|
env: {
|
||||||
loaderLength = loaderLengthArg;
|
moduleNameArg:moduleNameArg,
|
||||||
logEarly();
|
loaderLengthArg:loaderLengthArg,
|
||||||
|
CI: process.env.CI
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export let stop = function(){
|
export let stop = function(){
|
||||||
abort = true;
|
earlyChild.kill();
|
||||||
rl.write(null, {ctrl: true, name: 'u'});
|
|
||||||
rl.close();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user