54 lines
5.5 KiB
JavaScript
54 lines
5.5 KiB
JavaScript
"use strict";
|
|||
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
|
exports.padLeft = padLeft;
|
||
|
|
exports.padRight = padRight;
|
||
|
|
exports.formatTime = formatTime;
|
||
|
|
exports.lowerCaseFirstCharacter = lowerCaseFirstCharacter;
|
||
|
|
exports.formatReason = formatReason;
|
||
|
|
/**
|
||
|
|
* Pad 's' on the left with 'char' until it is n characters wide
|
||
|
|
*/
|
||
|
|
function padLeft(n, x, char = ' ') {
|
||
|
|
return char.repeat(Math.max(0, n - x.length)) + x;
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* Pad 's' on the right with 'char' until it is n characters wide
|
||
|
|
*/
|
||
|
|
function padRight(n, x, char = ' ') {
|
||
|
|
return x + char.repeat(Math.max(0, n - x.length));
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* Formats time in milliseconds (which we get from 'Date.getTime()')
|
||
|
|
* to a human-readable time; returns time in seconds rounded to 2
|
||
|
|
* decimal places.
|
||
|
|
*/
|
||
|
|
function formatTime(num) {
|
||
|
|
return roundPercentage(millisecondsToSeconds(num));
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* Rounds a decimal number to two decimal points.
|
||
|
|
* The function is useful for fractions that need to be outputted as percentages.
|
||
|
|
*/
|
||
|
|
function roundPercentage(num) {
|
||
|
|
return Math.round(100 * num) / 100;
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* Given a time in milliseconds, return an equivalent amount in seconds.
|
||
|
|
*/
|
||
|
|
function millisecondsToSeconds(num) {
|
||
|
|
return num / 1000;
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* This function lower cases the first character of the string provided.
|
||
|
|
*/
|
||
|
|
function lowerCaseFirstCharacter(str) {
|
||
|
|
return str.length > 0 ? `${str[0].toLowerCase()}${str.slice(1)}` : str;
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* Returns the provided reason or a default fallback message if the reason is undefined, null, or empty.
|
||
|
|
* This is commonly used for AWS API responses that may not always provide a reason field.
|
||
|
|
*/
|
||
|
|
function formatReason(reason, fallback = 'No reason provided') {
|
||
|
|
return reason?.trim() || fallback;
|
||
|
|
}
|
||
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLW1hbmlwdWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmluZy1tYW5pcHVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSwwQkFFQztBQUtELDRCQUVDO0FBT0QsZ0NBRUM7QUFvQkQsMERBRUM7QUFNRCxvQ0FFQztBQW5ERDs7R0FFRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLE9BQWUsR0FBRztJQUM5RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxPQUFlLEdBQUc7SUFDL0QsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixVQUFVLENBQUMsR0FBVztJQUNwQyxPQUFPLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGVBQWUsQ0FBQyxHQUFXO0lBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMscUJBQXFCLENBQUMsR0FBVztJQUN4QyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsR0FBVztJQUNqRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUN6RSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQWlDLEVBQUUsV0FBbUIsb0JBQW9CO0lBQ3JHLE9BQU8sTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYWQgJ3MnIG9uIHRoZSBsZWZ0IHdpdGggJ2NoYXInIHVudGlsIGl0IGlzIG4gY2hhcmFjdGVycyB3aWRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWRMZWZ0KG46IG51bWJlciwgeDogc3RyaW5nLCBjaGFyOiBzdHJpbmcgPSAnICcpOiBzdHJpbmcge1xuICByZXR1cm4gY2hhci5yZXBlYXQoTWF0aC5tYXgoMCwgbiAtIHgubGVuZ3RoKSkgKyB4O1xufVxuXG4vKipcbiAqIFBhZCAncycgb24gdGhlIHJpZ2h0IHdpdGggJ2NoYXInIHVudGlsIGl0IGlzIG4gY2hhcmFjdGVycyB3aWRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWRSaWdodChuOiBudW1iZXIsIHg6IHN0cmluZywgY2hhcjogc3RyaW5nID0gJyAnKTogc3RyaW5nIHtcbiAgcmV0dXJuIHggKyBjaGFyLnJlcGVhdChNYXRoLm1heCgwLCBuIC0geC5sZW5ndGgpKTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIHRpbWUgaW4gbWlsbGlzZWNvbmRzICh3aGljaCB3ZSBnZXQgZnJvbSAnRGF0ZS5nZXRUaW1lKCknKVxuICogdG8gYSBodW1hbi1yZWFkYWJsZSB0aW1lOyByZXR1cm5zIHRpbWUgaW4gc2Vjb25kcyByb3VuZGVkIHRvIDJcbiAqIGRlY2ltYWwgcGxhY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZShudW06IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiByb3VuZFBlcmNlbnRhZ2UobWlsbGlzZWNvbmRzVG9TZWNvbmRzKG51bSkpO1xufVxuXG4vKipcbiAqIFJvdW5kcyBhIGRlY2ltYWwgbnVtYmVyIHRvIHR3byBkZWNpbWFsIHBvaW50cy5cbiAqIFRoZSBmdW5jdGlvbiBpcyB1c2VmdWwgZm9yIGZyYWN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgb3V0cHV0dGVkIGFzIHBlcmNlbnRhZ2VzLlxuICovXG5mdW5jdGlvbiByb3VuZFBlcmNlbnRhZ2UobnVtOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5yb3VuZCgxMDAgKiBudW0pIC8gMTAwO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgdGltZSBpbiBtaWxsaXNlY29uZHMsIHJldHVybiBhbiBlcXVpdmFsZW50IGFtb3VudCBpbiBzZWNvbmRzLlxuICovXG5mdW5jdGlvbiBtaWxsaXNlY29uZHNUb1NlY29uZHMobnVtOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gbnVtIC8gMTAwMDtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGxvd2VyIGNhc2VzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZyBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvd2VyQ2FzZUZpcnN0Q2hhcmFjdGVyKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5sZW5ndGggPiAwID8gYCR7c3RyWzBdLnRvTG93ZXJDYXNlKCl9JHtzdHIuc2xpY2UoMSl9YCA6IHN0cjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwcm92aWRlZCByZWFzb24gb3IgYSBkZWZhdWx0IGZhbGxiYWNrIG1lc3NhZ2UgaWYgdGhlIHJlYXNvbiBpcyB1bmRlZmluZWQsIG51bGwsIG9yIGVtcHR5LlxuICogVGhpcyBpcyBjb21tb25seSB1c2VkIGZvciBBV1MgQVBJIHJlc3BvbnNlcyB0aGF0IG1heSBub3QgYWx3YXlzIHByb3ZpZGUgYSByZWFzb24gZmllbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSZWFzb24ocmVhc29uOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLCBmYWxsYmFjazogc3RyaW5nID0gJ05vIHJlYXNvbiBwcm92aWRlZCcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVhc29uPy50cmltKCkgfHwgZmFsbGJhY2s7XG59XG4iXX0=
|