mirror of
https://github.com/pezkuwichain/pezkuwi-common.git
synced 2026-10-30 05:59:49 +00:00
The header rule takes the current year as the end of the range, as upstream's does; 581 sources still ended at 2025, which failed lint. Lint never ran to completion here, so this went unseen. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
36 lines
994 B
TypeScript
36 lines
994 B
TypeScript
// Copyright 2017-2026 @pezkuwi/util authors & contributors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
import type { BN } from '../bn/bn.js';
|
|
import type { ToBn } from '../types.js';
|
|
|
|
import { bnToBn } from '../bn/toBn.js';
|
|
|
|
/** @internal */
|
|
function formatValue (elapsed: number): string {
|
|
if (elapsed < 15) {
|
|
return `${elapsed.toFixed(1)}s`;
|
|
} else if (elapsed < 60) {
|
|
return `${elapsed | 0}s`;
|
|
} else if (elapsed < 3600) {
|
|
return `${elapsed / 60 | 0}m`;
|
|
}
|
|
|
|
return `${elapsed / 3600 | 0}h`;
|
|
}
|
|
|
|
/**
|
|
* @name formatElapsed
|
|
* @description Formats an elapsed value into s, m, h or day segments
|
|
*/
|
|
export function formatElapsed <ExtToBn extends ToBn> (now?: Date | null, value?: bigint | BN | ExtToBn | Date | number | null): string {
|
|
const tsNow = now?.getTime() || 0;
|
|
const tsValue = value instanceof Date
|
|
? value.getTime()
|
|
: bnToBn(value).toNumber();
|
|
|
|
return (tsNow && tsValue)
|
|
? formatValue(Math.max(Math.abs(tsNow - tsValue), 0) / 1000)
|
|
: '0.0s';
|
|
}
|