now passing required loading time through promise
This commit is contained in:
parent
140bfb4f5e
commit
ac92f355d4
@ -10,7 +10,9 @@ early.start("myModuleName");
|
|||||||
/*
|
/*
|
||||||
do your loading stuff
|
do your loading stuff
|
||||||
*/
|
*/
|
||||||
early.stop(); // stop "early" when your module is ready
|
early.stop().then((loadingTime:number) => { // loadingTime in milliseconds
|
||||||
|
|
||||||
|
}); // stop "early" when your module is ready
|
||||||
```
|
```
|
||||||
|
|
||||||
early runs in its own process: The loader animation runs smoothly even when your event queue of your currently loading module is working heavily.
|
early runs in its own process: The loader animation runs smoothly even when your event queue of your currently loading module is working heavily.
|
||||||
|
2
dist/index.d.ts
vendored
2
dist/index.d.ts
vendored
@ -2,4 +2,4 @@
|
|||||||
import 'typings-global';
|
import 'typings-global';
|
||||||
import q = require('q');
|
import q = require('q');
|
||||||
export declare let start: (moduleNameArg?: string, loaderLengthArg?: string) => void;
|
export declare let start: (moduleNameArg?: string, loaderLengthArg?: string) => void;
|
||||||
export declare let stop: () => q.Promise<void>;
|
export declare let stop: () => q.Promise<number>;
|
||||||
|
13
dist/index.js
vendored
13
dist/index.js
vendored
@ -35,18 +35,19 @@ exports.start = function (moduleNameArg = '', loaderLengthArg = '10') {
|
|||||||
exports.stop = () => {
|
exports.stop = () => {
|
||||||
let done = q.defer();
|
let done = q.defer();
|
||||||
let endTime = Date.now();
|
let endTime = Date.now();
|
||||||
let executionTime = ((endTime - startTime) / 1000).toString();
|
let earlyExecutionTime = (endTime - startTime);
|
||||||
|
let earlyExecutionTimeString = (earlyExecutionTime / 1000).toString();
|
||||||
if (doAnimation) {
|
if (doAnimation) {
|
||||||
earlyChild.kill('SIGINT');
|
earlyChild.kill('SIGINT');
|
||||||
earlyChild.on('close', function () {
|
earlyChild.on('close', function () {
|
||||||
console.log(`loaded ${chalk.green(moduleName)} in ${executionTime} seconds!`);
|
console.log(`loaded ${chalk.green(moduleName)} in ${earlyExecutionTimeString} seconds!`);
|
||||||
done.resolve();
|
done.resolve(earlyExecutionTime);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
console.log(`... finished loading ${moduleName} in ${executionTime}`);
|
console.log(`... finished loading ${moduleName} in ${earlyExecutionTimeString}`);
|
||||||
done.resolve();
|
done.resolve(earlyExecutionTime);
|
||||||
}
|
}
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBQ3ZCLE1BQU8sSUFBSSxXQUFXLE1BQU0sQ0FBQyxDQUFBO0FBQzdCLE1BQU8sS0FBSyxXQUFXLE9BQU8sQ0FBQyxDQUFBO0FBQy9CLE1BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZCLE1BQU8sWUFBWSxXQUFXLGVBQWUsQ0FBQyxDQUFBO0FBQzlDLElBQUksVUFBVSxDQUFBO0FBRWQsSUFBSSxXQUFXLEdBQVksSUFBSSxDQUFBO0FBQy9CLElBQUksTUFBTSxHQUFZLEtBQUssQ0FBQTtBQUMzQixJQUFJLFVBQVUsR0FBVyx1QkFBdUIsQ0FBQTtBQUNoRCxJQUFJLFNBQVMsQ0FBQTtBQUViLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RCxXQUFXLEdBQUcsS0FBSyxDQUFBO0FBQ3ZCLENBQUM7QUFDRCxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsTUFBTSxHQUFHLElBQUksQ0FBQTtBQUNqQixDQUFDO0FBRUQsVUFBVTtBQUNDLGFBQUssR0FBRyxVQUFVLGFBQWEsR0FBVyxFQUFFLEVBQUUsZUFBZSxHQUFXLElBQUk7SUFFbkYsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUV0QixVQUFVLEdBQUcsYUFBYSxDQUFBO0lBQzFCLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDZCxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUN2RSxHQUFHLEVBQUU7Z0JBQ0QsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2FBQ3JCO1NBQ0osQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ25FLENBQUM7QUFDTCxDQUFDLENBQUE7QUFFVSxZQUFJLEdBQUc7SUFDZCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFRLENBQUE7SUFDMUIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO0lBQ3hCLElBQUksYUFBYSxHQUFXLENBQUMsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDckUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNkLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDekIsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sYUFBYSxXQUFXLENBQUMsQ0FBQTtZQUM3RSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixVQUFVLE9BQU8sYUFBYSxFQUFFLENBQUMsQ0FBQTtRQUNyRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbEIsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSJ9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBQ3ZCLE1BQU8sSUFBSSxXQUFXLE1BQU0sQ0FBQyxDQUFBO0FBQzdCLE1BQU8sS0FBSyxXQUFXLE9BQU8sQ0FBQyxDQUFBO0FBQy9CLE1BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZCLE1BQU8sWUFBWSxXQUFXLGVBQWUsQ0FBQyxDQUFBO0FBQzlDLElBQUksVUFBVSxDQUFBO0FBRWQsSUFBSSxXQUFXLEdBQVksSUFBSSxDQUFBO0FBQy9CLElBQUksTUFBTSxHQUFZLEtBQUssQ0FBQTtBQUMzQixJQUFJLFVBQVUsR0FBVyx1QkFBdUIsQ0FBQTtBQUNoRCxJQUFJLFNBQVMsQ0FBQTtBQUViLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RCxXQUFXLEdBQUcsS0FBSyxDQUFBO0FBQ3ZCLENBQUM7QUFDRCxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsTUFBTSxHQUFHLElBQUksQ0FBQTtBQUNqQixDQUFDO0FBRUQsVUFBVTtBQUNDLGFBQUssR0FBRyxVQUFVLGFBQWEsR0FBVyxFQUFFLEVBQUUsZUFBZSxHQUFXLElBQUk7SUFFbkYsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUV0QixVQUFVLEdBQUcsYUFBYSxDQUFBO0lBQzFCLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDZCxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUN2RSxHQUFHLEVBQUU7Z0JBQ0QsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2FBQ3JCO1NBQ0osQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ25FLENBQUM7QUFDTCxDQUFDLENBQUE7QUFFVSxZQUFJLEdBQUc7SUFDZCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFVLENBQUE7SUFDNUIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO0lBQ3hCLElBQUksa0JBQWtCLEdBQVcsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUE7SUFDdEQsSUFBSSx3QkFBd0IsR0FBVyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzdFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDZCxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3pCLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLHdCQUF3QixXQUFXLENBQUMsQ0FBQTtZQUN4RixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDcEMsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixVQUFVLE9BQU8sd0JBQXdCLEVBQUUsQ0FBQyxDQUFBO1FBQ2hGLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBIn0=
|
@ -74,7 +74,9 @@ early.start(<span class="hljs-string">"myModuleName"</span>);
|
|||||||
<span class="hljs-comment">/*
|
<span class="hljs-comment">/*
|
||||||
do your loading stuff
|
do your loading stuff
|
||||||
*/</span>
|
*/</span>
|
||||||
early.stop(); <span class="hljs-comment">// stop "early" when your module is ready</span>
|
early.stop().then((loadingTime:<span class="hljs-built_in">number</span>) => { <span class="hljs-comment">// loadingTime in milliseconds</span>
|
||||||
|
|
||||||
|
}); <span class="hljs-comment">// stop "early" when your module is ready</span>
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>early runs in its own process: The loader animation runs smoothly even when your event queue of your currently loading module is working heavily.</p>
|
<p>early runs in its own process: The loader animation runs smoothly even when your event queue of your currently loading module is working heavily.</p>
|
||||||
</div>
|
</div>
|
||||||
|
2
test/test.d.ts
vendored
2
test/test.d.ts
vendored
@ -1 +1 @@
|
|||||||
import "typings-test";
|
import 'typings-test';
|
||||||
|
18
test/test.js
18
test/test.js
@ -1,15 +1,17 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-test");
|
require('typings-test');
|
||||||
const early = require("../dist/index");
|
const early = require('../dist/index');
|
||||||
describe("early", function () {
|
describe('early', function () {
|
||||||
it(".start()", function (done) {
|
it('.start()', function (done) {
|
||||||
this.timeout(10000);
|
this.timeout(10000);
|
||||||
early.start("early");
|
early.start('early');
|
||||||
setTimeout(done, 5000);
|
setTimeout(done, 5000);
|
||||||
});
|
});
|
||||||
it(".stop()", function (done) {
|
it('.stop()', function (done) {
|
||||||
early.stop()
|
early.stop()
|
||||||
.then(done);
|
.then(() => {
|
||||||
|
done();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsTUFBTyxLQUFLLFdBQVcsZUFBZSxDQUFDLENBQUM7QUFFeEMsUUFBUSxDQUFDLE9BQU8sRUFBQztJQUNiLEVBQUUsQ0FBQyxVQUFVLEVBQUMsVUFBUyxJQUFJO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQixVQUFVLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLFNBQVMsRUFBQyxVQUFTLElBQUk7UUFDdEIsS0FBSyxDQUFDLElBQUksRUFBRTthQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFBIn0=
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FDUCxDQUFDLENBRG9CO0FBQ3JCLE1BQU8sS0FBSyxXQUFXLGVBQWUsQ0FBQyxDQUFBO0FBRXZDLFFBQVEsQ0FBQyxPQUFPLEVBQUM7SUFDYixFQUFFLENBQUMsVUFBVSxFQUFDLFVBQVMsSUFBSTtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ25CLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDcEIsVUFBVSxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQTtJQUN6QixDQUFDLENBQUMsQ0FBQTtJQUNGLEVBQUUsQ0FBQyxTQUFTLEVBQUMsVUFBUyxJQUFJO1FBQ3RCLEtBQUssQ0FBQyxJQUFJLEVBQUU7YUFDUCxJQUFJLENBQUM7WUFDRixJQUFJLEVBQUUsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQSJ9
|
26
test/test.ts
26
test/test.ts
@ -1,14 +1,16 @@
|
|||||||
import "typings-test";
|
import 'typings-test'
|
||||||
import early = require("../dist/index");
|
import early = require('../dist/index')
|
||||||
|
|
||||||
describe("early",function(){
|
describe('early',function(){
|
||||||
it(".start()",function(done){
|
it('.start()',function(done){
|
||||||
this.timeout(10000);
|
this.timeout(10000)
|
||||||
early.start("early");
|
early.start('early')
|
||||||
setTimeout(done,5000);
|
setTimeout(done,5000)
|
||||||
});
|
|
||||||
it(".stop()",function(done){
|
|
||||||
early.stop()
|
|
||||||
.then(done);
|
|
||||||
})
|
})
|
||||||
})
|
it('.stop()',function(done){
|
||||||
|
early.stop()
|
||||||
|
.then(() => {
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
15
ts/index.ts
15
ts/index.ts
@ -36,19 +36,20 @@ export let start = function (moduleNameArg: string = '', loaderLengthArg: string
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export let stop = (): q.Promise<void> => {
|
export let stop = (): q.Promise<number> => {
|
||||||
let done = q.defer<void>()
|
let done = q.defer<number>()
|
||||||
let endTime = Date.now()
|
let endTime = Date.now()
|
||||||
let executionTime: string = ((endTime - startTime) / 1000).toString()
|
let earlyExecutionTime: number = (endTime - startTime)
|
||||||
|
let earlyExecutionTimeString: string = (earlyExecutionTime / 1000).toString()
|
||||||
if (doAnimation) {
|
if (doAnimation) {
|
||||||
earlyChild.kill('SIGINT')
|
earlyChild.kill('SIGINT')
|
||||||
earlyChild.on('close', function () {
|
earlyChild.on('close', function () {
|
||||||
console.log(`loaded ${chalk.green(moduleName)} in ${executionTime} seconds!`)
|
console.log(`loaded ${chalk.green(moduleName)} in ${earlyExecutionTimeString} seconds!`)
|
||||||
done.resolve()
|
done.resolve(earlyExecutionTime)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
console.log(`... finished loading ${moduleName} in ${executionTime}`)
|
console.log(`... finished loading ${moduleName} in ${earlyExecutionTimeString}`)
|
||||||
done.resolve()
|
done.resolve(earlyExecutionTime)
|
||||||
}
|
}
|
||||||
return done.promise
|
return done.promise
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user