core/converters/text.converter.ts
core/converters/text.converter.ts is a file in Bane's Lab Deploy. 44 lines of code and 12 definitions.
import {
BYTES_PER_GB,
BYTES_PER_MB,
CLOCK_FILL,
CLOCK_PAD,
CLOCK_SEPARATOR,
DECIMALS,
MS_PER_SECOND,
SECONDS_PER_HOUR,
SECONDS_PER_MINUTE,
STAMP_LENGTH,
STAMP_SEPARATOR,
} from "#configuration/constants/deployment.constants";
import { GIGABYTE, MEGABYTE } from "#configuration/strings/notification.strings";
const STAMP_PUNCTUATION = new Set([":", ".", "T"]);
export const formatBytes = function formatBytes(bytes: number): string {
if (bytes >= BYTES_PER_GB) {
return (bytes / BYTES_PER_GB).toFixed(DECIMALS) + GIGABYTE;
}
return (bytes / BYTES_PER_MB).toFixed(DECIMALS) + MEGABYTE;
};
export const formatDuration = function formatDuration(milliseconds: number): string {
return (milliseconds / MS_PER_SECOND).toFixed(DECIMALS);
};
const padded = function padded(value: number): string {
return String(value).padStart(CLOCK_PAD, CLOCK_FILL);
};
export const formatClock = function formatClock(seconds: number): string {
const whole = Math.max(0, Math.round(seconds));
const hours = Math.floor(whole / SECONDS_PER_HOUR);
const minutes = Math.floor((whole % SECONDS_PER_HOUR) / SECONDS_PER_MINUTE);
return [hours, minutes, whole % SECONDS_PER_MINUTE].map(padded).join(CLOCK_SEPARATOR);
};
export const stamp = function stamp(): string {
const iso = new Date().toISOString().slice(0, STAMP_LENGTH);
let out = "";
for (const character of iso) {
out += STAMP_PUNCTUATION.has(character) ? STAMP_SEPARATOR : character;
}
return out;
};
export const truncate = function truncate(text: string, limit: number, marker: string): string {
return text.length > limit ? text.slice(0, limit) + marker : text;
};