| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent b3172f8 commit 66043e1
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -32,6 +32,10 @@ const kTraceBegin = 'b'.charCodeAt(0); | |||
| 32 | 32 | const kTraceEnd = 'e'.charCodeAt(0); | |
| 33 | 33 | const kTraceInstant = 'n'.charCodeAt(0); | |
| 34 | 34 | ||
| 35 | + const kSecond = 1000; | ||
| 36 | + const kMinute = 60 * kSecond; | ||
| 37 | + const kHour = 60 * kMinute; | ||
| 38 | + | ||
| 35 | 39 | const { | |
| 36 | 40 | isArray: ArrayIsArray, | |
| 37 | 41 | from: ArrayFrom, | |
@@ -518,14 +522,35 @@ function timeLogImpl(self, name, label, data) { | |||
| 518 | 522 | } | |
| 519 | 523 | const duration = process.hrtime(time); | |
| 520 | 524 | const ms = duration[0] * 1000 + duration[1] / 1e6; | |
| 525 | + | ||
| 526 | + const formatted = formatTime(ms); | ||
| 527 | + | ||
| 521 | 528 | if (data === undefined) { | |
| 522 | - self.log('%s: %sms', label, ms.toFixed(3)); | ||
| 529 | + self.log('%s: %s', label, formatted); | ||
| 523 | 530 | } else { | |
| 524 | - self.log('%s: %sms', label, ms.toFixed(3), ...data); | ||
| 531 | + self.log('%s: %s', label, formatted, ...data); | ||
| 525 | 532 | } | |
| 526 | 533 | return true; | |
| 527 | 534 | } | |
| 528 | 535 | ||
| 536 | + function formatTime(ms) { | ||
| 537 | + let value = ms; | ||
| 538 | + let unit = 'ms'; | ||
| 539 | + | ||
| 540 | + if (ms >= kHour) { | ||
| 541 | + value = ms / kHour; | ||
| 542 | + unit = 'h'; | ||
| 543 | + } else if (ms >= kMinute) { | ||
| 544 | + value = ms / kMinute; | ||
| 545 | + unit = 'min'; | ||
| 546 | + } else if (ms >= kSecond) { | ||
| 547 | + value = ms / kSecond; | ||
| 548 | + unit = 's'; | ||
| 549 | + } | ||
| 550 | + | ||
| 551 | + return value.toFixed(3) + unit; | ||
| 552 | + } | ||
| 553 | + | ||
| 529 | 554 | const keyKey = 'Key'; | |
| 530 | 555 | const valuesKey = 'Values'; | |
| 531 | 556 | const indexKey = '(index)'; | |
@@ -547,5 +572,6 @@ Console.prototype.groupCollapsed = Console.prototype.group; | |||
| 547 | 572 | module.exports = { | |
| 548 | 573 | Console, | |
| 549 | 574 | kBindStreamsLazy, | |
| 550 | - kBindProperties | ||
| 575 | + kBindProperties, | ||
| 576 | + formatTime // exported for tests | ||
| 551 | 577 | }; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,15 @@ | |||
| 1 | + 'use strict'; | ||
| 2 | + // Flags: --expose-internals | ||
| 3 | + require('../common'); | ||
| 4 | + const { formatTime } = require('internal/console/constructor'); | ||
| 5 | + const assert = require('assert'); | ||
| 6 | + | ||
| 7 | + const test1 = formatTime(100); | ||
| 8 | + const test2 = formatTime(1500); | ||
| 9 | + const test3 = formatTime(60300); | ||
| 10 | + const test4 = formatTime(4000000); | ||
| 11 | + | ||
| 12 | + assert.strictEqual(test1, '100.000ms'); | ||
| 13 | + assert.strictEqual(test2, '1.500s'); | ||
| 14 | + assert.strictEqual(test3, '1.005min'); | ||
| 15 | + assert.strictEqual(test4, '1.111h'); | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -246,24 +246,24 @@ assert.ok(strings[0].includes('foo: { bar: { baz:')); | |||
| 246 | 246 | assert.ok(strings[0].includes('quux')); | |
| 247 | 247 | assert.ok(strings.shift().includes('quux: true')); | |
| 248 | 248 | ||
| 249 | - assert.ok(/^label: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 250 | - assert.ok(/^__proto__: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 251 | - assert.ok(/^constructor: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 252 | - assert.ok(/^hasOwnProperty: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 249 | + assert.ok(/^label: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 250 | + assert.ok(/^__proto__: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 251 | + assert.ok(/^constructor: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 252 | + assert.ok(/^hasOwnProperty: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 253 | 253 | ||
| 254 | 254 | // Verify that console.time() coerces label values to strings as expected | |
| 255 | - assert.ok(/^: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 256 | - assert.ok(/^\[object Object\]: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 257 | - assert.ok(/^\[object Object\]: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 258 | - assert.ok(/^null: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 259 | - assert.ok(/^default: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 260 | - assert.ok(/^default: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 261 | - assert.ok(/^NaN: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 262 | - | ||
| 263 | - assert.ok(/^log1: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 264 | - assert.ok(/^log1: \d+\.\d{3}ms test$/.test(strings.shift().trim())); | ||
| 265 | - assert.ok(/^log1: \d+\.\d{3}ms {} \[ 1, 2, 3 ]$/.test(strings.shift().trim())); | ||
| 266 | - assert.ok(/^log1: \d+\.\d{3}ms$/.test(strings.shift().trim())); | ||
| 255 | + assert.ok(/^: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 256 | + assert.ok(/^\[object Object\]: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 257 | + assert.ok(/^\[object Object\]: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 258 | + assert.ok(/^null: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 259 | + assert.ok(/^default: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 260 | + assert.ok(/^default: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 261 | + assert.ok(/^NaN: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 262 | + | ||
| 263 | + assert.ok(/^log1: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 264 | + assert.ok(/^log1: \d+\.\d{3}(ms|s|min|h) test$/.test(strings.shift().trim())); | ||
| 265 | + assert.ok(/^log1: \d+\.\d{3}(ms|s|min|h) {} \[ 1, 2, 3 ]$/.test(strings.shift().trim())); | ||
| 266 | + assert.ok(/^log1: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); | ||
| 267 | 267 | ||
| 268 | 268 | // Make sure that we checked all strings | |
| 269 | 269 | assert.strictEqual(strings.length, 0); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments