2016-09-15 12:45:58 +00:00
|
|
|
import 'typings-global'
|
2017-02-17 17:56:58 +00:00
|
|
|
import * as beautycolor from 'beautycolor'
|
|
|
|
import * as smartq from 'smartq'
|
2017-04-23 16:46:13 +00:00
|
|
|
import * as process from 'process'
|
2016-06-10 03:18:03 +00:00
|
|
|
|
2016-09-15 12:45:58 +00:00
|
|
|
let doText: boolean = false
|
|
|
|
let moduleName: string = 'undefined module name'
|
2016-09-18 22:34:38 +00:00
|
|
|
let startTime = Date.now()
|
2016-08-20 05:03:49 +00:00
|
|
|
|
2016-09-18 22:34:38 +00:00
|
|
|
if (process.argv.indexOf('-v') === -1) {
|
2017-02-17 17:56:58 +00:00
|
|
|
doText = true
|
2016-06-10 03:18:03 +00:00
|
|
|
}
|
|
|
|
|
2016-09-18 22:34:38 +00:00
|
|
|
/**
|
|
|
|
* start the loading
|
|
|
|
*/
|
2016-09-15 12:45:58 +00:00
|
|
|
export let start = function (moduleNameArg: string = '', loaderLengthArg: string = '10') {
|
2017-02-17 17:56:58 +00:00
|
|
|
moduleName = moduleNameArg
|
|
|
|
if (doText) {
|
|
|
|
console.log(`**** starting ${beautycolor.coloredString(moduleNameArg, 'green')} ****`)
|
|
|
|
}
|
2016-09-15 12:45:58 +00:00
|
|
|
}
|
2016-05-20 17:06:25 +00:00
|
|
|
|
2017-02-17 17:56:58 +00:00
|
|
|
export let stop = (): Promise<number> => {
|
|
|
|
let done = smartq.defer<number>()
|
|
|
|
let endTime = Date.now()
|
|
|
|
let earlyExecutionTime: number = (endTime - startTime)
|
|
|
|
let earlyExecutionTimeString: string = (earlyExecutionTime / 1000).toString()
|
2017-03-26 20:01:33 +00:00
|
|
|
console.log(`OK! -> finished loading within ${beautycolor.coloredString(earlyExecutionTimeString, 'blue')}`)
|
2017-02-17 17:56:58 +00:00
|
|
|
done.resolve(earlyExecutionTime)
|
|
|
|
return done.promise
|
2016-09-15 12:45:58 +00:00
|
|
|
}
|
2017-04-23 16:46:13 +00:00
|
|
|
|
|
|
|
export class hrtMeasurement {
|
|
|
|
private _started: boolean = false
|
|
|
|
private _hrTimeStart
|
|
|
|
start () {
|
|
|
|
this._started = true
|
|
|
|
this._hrTimeStart = process.hrtime()
|
|
|
|
}
|
|
|
|
stop () {
|
|
|
|
if (this._started === false) {
|
|
|
|
console.log('Hasn\'t started yet')
|
|
|
|
return
|
|
|
|
}
|
|
|
|
let diffTime = process.hrtime(this._hrTimeStart)
|
|
|
|
let nanoSeconds = (diffTime[0] * 1e9) + diffTime[1]
|
|
|
|
let milliSeconds = nanoSeconds / 1000000
|
|
|
|
return {
|
|
|
|
nanoSeconds: nanoSeconds,
|
|
|
|
milliSeconds: milliSeconds
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|