qstd 0.2.28 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/index.cjs +22 -5
- package/dist/client/index.js +22 -5
- package/dist/server/index.cjs +22 -5
- package/dist/server/index.js +22 -5
- package/dist/shared/log.d.ts +0 -10
- package/dist/shared/log.d.ts.map +1 -1
- package/dist/shared/time.d.ts +36 -0
- package/dist/shared/time.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/client/index.cjs
CHANGED
|
@@ -260,6 +260,7 @@ __export(time_exports, {
|
|
|
260
260
|
formatThreadDateRange: () => formatThreadDateRange,
|
|
261
261
|
now: () => now,
|
|
262
262
|
sleep: () => sleep,
|
|
263
|
+
startTimer: () => startTimer,
|
|
263
264
|
toMs: () => toMs
|
|
264
265
|
});
|
|
265
266
|
var formatDuration = (ms, options = {}) => {
|
|
@@ -454,6 +455,27 @@ var toMs = (value, unit = "seconds") => {
|
|
|
454
455
|
};
|
|
455
456
|
return value * multipliers[unit];
|
|
456
457
|
};
|
|
458
|
+
function startTimer(options = {}) {
|
|
459
|
+
const start = Date.now();
|
|
460
|
+
const fmt = options.format ?? "ms";
|
|
461
|
+
const getElapsed = () => {
|
|
462
|
+
const elapsed = Date.now() - start;
|
|
463
|
+
if (fmt === "compact") {
|
|
464
|
+
const hours = Math.floor(elapsed / 36e5);
|
|
465
|
+
const minutes = Math.floor(elapsed % 36e5 / 6e4);
|
|
466
|
+
const seconds = Math.floor(elapsed % 6e4 / 1e3);
|
|
467
|
+
const milliseconds = elapsed % 1e3;
|
|
468
|
+
let result = "";
|
|
469
|
+
if (hours > 0) result += `${hours}h`;
|
|
470
|
+
if (minutes > 0) result += `${minutes}m`;
|
|
471
|
+
if (seconds > 0) result += `${seconds}s`;
|
|
472
|
+
if (milliseconds > 0 || result === "") result += `${milliseconds}ms`;
|
|
473
|
+
return result;
|
|
474
|
+
}
|
|
475
|
+
return elapsed;
|
|
476
|
+
};
|
|
477
|
+
return { stop: getElapsed, elapsed: getElapsed };
|
|
478
|
+
}
|
|
457
479
|
|
|
458
480
|
// src/shared/flow.ts
|
|
459
481
|
var flow_exports = {};
|
|
@@ -551,14 +573,9 @@ __export(log_exports, {
|
|
|
551
573
|
info: () => info,
|
|
552
574
|
label: () => label,
|
|
553
575
|
log: () => log,
|
|
554
|
-
startTimer: () => startTimer,
|
|
555
576
|
warn: () => warn
|
|
556
577
|
});
|
|
557
578
|
var stringify = (value) => JSON.stringify(value, null, 2);
|
|
558
|
-
var startTimer = () => {
|
|
559
|
-
const start = Date.now();
|
|
560
|
-
return () => Date.now() - start;
|
|
561
|
-
};
|
|
562
579
|
var log = (...values) => {
|
|
563
580
|
console.log(...values.map(stringify));
|
|
564
581
|
};
|
package/dist/client/index.js
CHANGED
|
@@ -258,6 +258,7 @@ __export(time_exports, {
|
|
|
258
258
|
formatThreadDateRange: () => formatThreadDateRange,
|
|
259
259
|
now: () => now,
|
|
260
260
|
sleep: () => sleep,
|
|
261
|
+
startTimer: () => startTimer,
|
|
261
262
|
toMs: () => toMs
|
|
262
263
|
});
|
|
263
264
|
var formatDuration = (ms, options = {}) => {
|
|
@@ -452,6 +453,27 @@ var toMs = (value, unit = "seconds") => {
|
|
|
452
453
|
};
|
|
453
454
|
return value * multipliers[unit];
|
|
454
455
|
};
|
|
456
|
+
function startTimer(options = {}) {
|
|
457
|
+
const start = Date.now();
|
|
458
|
+
const fmt = options.format ?? "ms";
|
|
459
|
+
const getElapsed = () => {
|
|
460
|
+
const elapsed = Date.now() - start;
|
|
461
|
+
if (fmt === "compact") {
|
|
462
|
+
const hours = Math.floor(elapsed / 36e5);
|
|
463
|
+
const minutes = Math.floor(elapsed % 36e5 / 6e4);
|
|
464
|
+
const seconds = Math.floor(elapsed % 6e4 / 1e3);
|
|
465
|
+
const milliseconds = elapsed % 1e3;
|
|
466
|
+
let result = "";
|
|
467
|
+
if (hours > 0) result += `${hours}h`;
|
|
468
|
+
if (minutes > 0) result += `${minutes}m`;
|
|
469
|
+
if (seconds > 0) result += `${seconds}s`;
|
|
470
|
+
if (milliseconds > 0 || result === "") result += `${milliseconds}ms`;
|
|
471
|
+
return result;
|
|
472
|
+
}
|
|
473
|
+
return elapsed;
|
|
474
|
+
};
|
|
475
|
+
return { stop: getElapsed, elapsed: getElapsed };
|
|
476
|
+
}
|
|
455
477
|
|
|
456
478
|
// src/shared/flow.ts
|
|
457
479
|
var flow_exports = {};
|
|
@@ -549,14 +571,9 @@ __export(log_exports, {
|
|
|
549
571
|
info: () => info,
|
|
550
572
|
label: () => label,
|
|
551
573
|
log: () => log,
|
|
552
|
-
startTimer: () => startTimer,
|
|
553
574
|
warn: () => warn
|
|
554
575
|
});
|
|
555
576
|
var stringify = (value) => JSON.stringify(value, null, 2);
|
|
556
|
-
var startTimer = () => {
|
|
557
|
-
const start = Date.now();
|
|
558
|
-
return () => Date.now() - start;
|
|
559
|
-
};
|
|
560
577
|
var log = (...values) => {
|
|
561
578
|
console.log(...values.map(stringify));
|
|
562
579
|
};
|
package/dist/server/index.cjs
CHANGED
|
@@ -263,6 +263,7 @@ __export(time_exports, {
|
|
|
263
263
|
formatThreadDateRange: () => formatThreadDateRange,
|
|
264
264
|
now: () => now,
|
|
265
265
|
sleep: () => sleep,
|
|
266
|
+
startTimer: () => startTimer,
|
|
266
267
|
toMs: () => toMs
|
|
267
268
|
});
|
|
268
269
|
var formatDuration = (ms, options = {}) => {
|
|
@@ -457,6 +458,27 @@ var toMs = (value, unit = "seconds") => {
|
|
|
457
458
|
};
|
|
458
459
|
return value * multipliers[unit];
|
|
459
460
|
};
|
|
461
|
+
function startTimer(options = {}) {
|
|
462
|
+
const start = Date.now();
|
|
463
|
+
const fmt = options.format ?? "ms";
|
|
464
|
+
const getElapsed = () => {
|
|
465
|
+
const elapsed = Date.now() - start;
|
|
466
|
+
if (fmt === "compact") {
|
|
467
|
+
const hours = Math.floor(elapsed / 36e5);
|
|
468
|
+
const minutes = Math.floor(elapsed % 36e5 / 6e4);
|
|
469
|
+
const seconds = Math.floor(elapsed % 6e4 / 1e3);
|
|
470
|
+
const milliseconds = elapsed % 1e3;
|
|
471
|
+
let result = "";
|
|
472
|
+
if (hours > 0) result += `${hours}h`;
|
|
473
|
+
if (minutes > 0) result += `${minutes}m`;
|
|
474
|
+
if (seconds > 0) result += `${seconds}s`;
|
|
475
|
+
if (milliseconds > 0 || result === "") result += `${milliseconds}ms`;
|
|
476
|
+
return result;
|
|
477
|
+
}
|
|
478
|
+
return elapsed;
|
|
479
|
+
};
|
|
480
|
+
return { stop: getElapsed, elapsed: getElapsed };
|
|
481
|
+
}
|
|
460
482
|
|
|
461
483
|
// src/shared/flow.ts
|
|
462
484
|
var flow_exports = {};
|
|
@@ -554,14 +576,9 @@ __export(log_exports, {
|
|
|
554
576
|
info: () => info,
|
|
555
577
|
label: () => label,
|
|
556
578
|
log: () => log,
|
|
557
|
-
startTimer: () => startTimer,
|
|
558
579
|
warn: () => warn
|
|
559
580
|
});
|
|
560
581
|
var stringify = (value) => JSON.stringify(value, null, 2);
|
|
561
|
-
var startTimer = () => {
|
|
562
|
-
const start = Date.now();
|
|
563
|
-
return () => Date.now() - start;
|
|
564
|
-
};
|
|
565
582
|
var log = (...values) => {
|
|
566
583
|
console.log(...values.map(stringify));
|
|
567
584
|
};
|
package/dist/server/index.js
CHANGED
|
@@ -261,6 +261,7 @@ __export(time_exports, {
|
|
|
261
261
|
formatThreadDateRange: () => formatThreadDateRange,
|
|
262
262
|
now: () => now,
|
|
263
263
|
sleep: () => sleep,
|
|
264
|
+
startTimer: () => startTimer,
|
|
264
265
|
toMs: () => toMs
|
|
265
266
|
});
|
|
266
267
|
var formatDuration = (ms, options = {}) => {
|
|
@@ -455,6 +456,27 @@ var toMs = (value, unit = "seconds") => {
|
|
|
455
456
|
};
|
|
456
457
|
return value * multipliers[unit];
|
|
457
458
|
};
|
|
459
|
+
function startTimer(options = {}) {
|
|
460
|
+
const start = Date.now();
|
|
461
|
+
const fmt = options.format ?? "ms";
|
|
462
|
+
const getElapsed = () => {
|
|
463
|
+
const elapsed = Date.now() - start;
|
|
464
|
+
if (fmt === "compact") {
|
|
465
|
+
const hours = Math.floor(elapsed / 36e5);
|
|
466
|
+
const minutes = Math.floor(elapsed % 36e5 / 6e4);
|
|
467
|
+
const seconds = Math.floor(elapsed % 6e4 / 1e3);
|
|
468
|
+
const milliseconds = elapsed % 1e3;
|
|
469
|
+
let result = "";
|
|
470
|
+
if (hours > 0) result += `${hours}h`;
|
|
471
|
+
if (minutes > 0) result += `${minutes}m`;
|
|
472
|
+
if (seconds > 0) result += `${seconds}s`;
|
|
473
|
+
if (milliseconds > 0 || result === "") result += `${milliseconds}ms`;
|
|
474
|
+
return result;
|
|
475
|
+
}
|
|
476
|
+
return elapsed;
|
|
477
|
+
};
|
|
478
|
+
return { stop: getElapsed, elapsed: getElapsed };
|
|
479
|
+
}
|
|
458
480
|
|
|
459
481
|
// src/shared/flow.ts
|
|
460
482
|
var flow_exports = {};
|
|
@@ -552,14 +574,9 @@ __export(log_exports, {
|
|
|
552
574
|
info: () => info,
|
|
553
575
|
label: () => label,
|
|
554
576
|
log: () => log,
|
|
555
|
-
startTimer: () => startTimer,
|
|
556
577
|
warn: () => warn
|
|
557
578
|
});
|
|
558
579
|
var stringify = (value) => JSON.stringify(value, null, 2);
|
|
559
|
-
var startTimer = () => {
|
|
560
|
-
const start = Date.now();
|
|
561
|
-
return () => Date.now() - start;
|
|
562
|
-
};
|
|
563
580
|
var log = (...values) => {
|
|
564
581
|
console.log(...values.map(stringify));
|
|
565
582
|
};
|
package/dist/shared/log.d.ts
CHANGED
|
@@ -17,16 +17,6 @@
|
|
|
17
17
|
* log.header("HANDLER START"); // [audio-processor] ========== HANDLER START ==========
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
|
-
/**
|
|
21
|
-
* Starts a timer and returns a function that returns elapsed milliseconds.
|
|
22
|
-
* @returns A function that returns the elapsed time in ms since the timer started
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript // Timer
|
|
25
|
-
* const elapsed = Log.startTimer();
|
|
26
|
-
* // ... do work ...
|
|
27
|
-
* log.header(`COMPLETE (${elapsed()}ms)`); // ========== COMPLETE (123ms) ==========```
|
|
28
|
-
*/
|
|
29
|
-
export declare const startTimer: () => () => number;
|
|
30
20
|
/**
|
|
31
21
|
* Logs values to the console (no prefix).
|
|
32
22
|
* @param values - Values to log (will be JSON stringified)
|
package/dist/shared/log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/shared/log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/shared/log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,GAAI,GAAG,QAAQ,OAAO,EAAE,SAEvC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GAAI,GAAG,QAAQ,OAAO,EAAE,SAExC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GAAI,GAAG,QAAQ,OAAO,EAAE,SAExC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAAI,GAAG,QAAQ,OAAO,EAAE,SAEzC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,GAAI,SAAS,MAAM,SAErC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM;IAChC,iEAAiE;sBAC/C,OAAO,EAAE;IAG3B,+EAA+E;sBAC7D,OAAO,EAAE;IAG3B,iFAAiF;uBAC9D,OAAO,EAAE;IAG5B,iGAAiG;sBAC/E,MAAM;CAGxB,CAAC"}
|
package/dist/shared/time.d.ts
CHANGED
|
@@ -108,5 +108,41 @@ export declare const now: () => number;
|
|
|
108
108
|
* const ms = toMs(5, "minutes") // Convert 5 minutes to milliseconds
|
|
109
109
|
*/
|
|
110
110
|
export declare const toMs: (value: number, unit?: Exclude<TimeUnit, "businessDays">) => number;
|
|
111
|
+
type TimerFormat = "ms" | "compact";
|
|
112
|
+
type TimerOptions<T extends TimerFormat = "ms"> = {
|
|
113
|
+
format?: T;
|
|
114
|
+
};
|
|
115
|
+
type Timer<T extends TimerFormat> = {
|
|
116
|
+
/** Returns elapsed time since timer started. For "ms" format returns number, for "compact" returns string like "1m3s440ms" */
|
|
117
|
+
stop: () => T extends "compact" ? string : number;
|
|
118
|
+
/** Returns current elapsed time without stopping (same as stop, but semantically for intermediate checks) */
|
|
119
|
+
elapsed: () => T extends "compact" ? string : number;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Starts a timer and returns an object with stop/elapsed methods.
|
|
123
|
+
* @param options - Optional configuration. `format: "ms"` (default) returns numbers, `format: "compact"` returns strings like "1m3s440ms"
|
|
124
|
+
* @returns Timer object with stop() and elapsed() methods
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* // Default (returns milliseconds as number)
|
|
129
|
+
* const timer = Time.startTimer();
|
|
130
|
+
* // ... do work ...
|
|
131
|
+
* const ms = timer.stop(); // 1234
|
|
132
|
+
*
|
|
133
|
+
* // Compact format (returns string)
|
|
134
|
+
* const timer = Time.startTimer({ format: "compact" });
|
|
135
|
+
* // ... do work ...
|
|
136
|
+
* const formatted = timer.stop(); // "1s234ms"
|
|
137
|
+
*
|
|
138
|
+
* // Check elapsed time without "stopping"
|
|
139
|
+
* const timer = Time.startTimer();
|
|
140
|
+
* console.log(timer.elapsed()); // 500
|
|
141
|
+
* // ... more work ...
|
|
142
|
+
* console.log(timer.stop()); // 1234
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export declare function startTimer(): Timer<"ms">;
|
|
146
|
+
export declare function startTimer<T extends TimerFormat>(options: TimerOptions<T>): Timer<T>;
|
|
111
147
|
export {};
|
|
112
148
|
//# sourceMappingURL=time.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/shared/time.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMvC,KAAK,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;AAElE,KAAK,eAAe,GAAG;IACrB,kHAAkH;IAClH,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,cAAc,GACzB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,EAC7B,UAAS,eAAoB,WA0F9B,CAAC;AAMF,KAAK,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,KAAK,eAAe,GAChB,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,UAAU,GACV,MAAM,CAAC;AAEX,KAAK,WAAW,GAAG;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,SAAS,EAAE,UAAS,WAAgB,WAgDrE,CAAC;AAMF,KAAK,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,KAAK,gBAAgB,GAAG;IACtB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAOF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,cAAc,EAC1B,UAAU,cAAc,EACxB,UAAS,gBAAqB,WAiF/B,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAChC,YAAY,cAAc,EAC1B,UAAU,cAAc,EACxB,UAAS,gBAAqB,WACmB,CAAC;AAMpD,KAAK,QAAQ,GACT,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,cAAc,CAAC;AAEnB,KAAK,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAExD;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GACrB,YAAY,cAAc,EAC1B,WAAU,IAAiB,SAe5B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACI,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,GAAG,cAAmB,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,IAAI,GACf,OAAO,MAAM,EACb,OAAM,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAa,WAapD,CAAC"}
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/shared/time.ts"],"names":[],"mappings":"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"}
|