@jonstuebe/allot-utils
Version:
Util functions for Allot
56 lines • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const date_fns_1 = require("date-fns");
const payPeriod_1 = require("./payPeriod");
function chunk(array, size) {
const chunked_arr = [];
for (let i = 0; i < array.length; i++) {
const last = chunked_arr[chunked_arr.length - 1];
if (!last || last.length === size) {
chunked_arr.push([array[i]]);
}
else {
last.push(array[i]);
}
}
return chunked_arr;
}
exports.chunk = chunk;
function parseISO(dateISO) {
const [year, month, day] = dateISO
.substr(0, 10)
.split("-")
.map(item => Number(item));
return new Date(year, month - 1, day);
}
exports.parseISO = parseISO;
function isBetween(date, start, end, includeEqual = false) {
const between = date_fns_1.isBefore(date, end) && date_fns_1.isAfter(date, start);
if (includeEqual) {
return between || date_fns_1.isEqual(date, start) || date_fns_1.isEqual(date, end);
}
return between;
}
exports.isBetween = isBetween;
function formatCurrency(amount, country = "en-US", currency = "USD") {
return new Intl.NumberFormat(country, {
style: "currency",
currency
}).format(amount);
}
exports.formatCurrency = formatCurrency;
function renderTable(payPeriods) {
const table = payPeriods.map((payPeriod, index) => {
const bills = payPeriod.bills.length > 0 ? payPeriod_1.totalBillsInPayPeriod(payPeriod) : 0;
const income = payPeriod.paychecks.length > 0 ? payPeriod_1.totalIncomeInPayPeriod(payPeriod) : 0;
return {
"Pay Period": payPeriod_1.formatPayPeriodDate(payPeriod),
Bills: formatCurrency(bills),
Income: formatCurrency(income),
Remaining: formatCurrency(income - bills)
};
});
console.table(table);
}
exports.renderTable = renderTable;
//# sourceMappingURL=utils.js.map