UNPKG

@playbooks/utils

Version:

A collection of utilities used for Playbooks.

88 lines (87 loc) 2.53 kB
import Accounting from "accounting"; import { abbreviateNumber } from "js-abbreviation-number"; const camelToUnderscore = (data = "") => { return data.replace(/([A-Z])/g, "_$1").toLowerCase(); }; const camelToDash = (data = "") => { return data.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); }; const camelToString = (data = "") => { return data.replace(/([A-Z])/g, " $1").toLowerCase(); }; const dashToCamel = (data = "") => { return data.replace(/-([a-z])/g, (g) => g[1].toUpperCase()); }; const dashToCapital = (data = "") => { return data.split("-").map((k) => k.replace(k.charAt(0), k.charAt(0).toUpperCase())).join(""); }; const dashToString = (data = "") => { return data.split("-").map((k) => k.replace(k.charAt(0), k.charAt(0).toUpperCase())).join(" "); }; const dashToUnderscore = (data = "") => { return data.replace(/-([a-z])/g, "_$1").toLowerCase(); }; const phoneToString = (data = "") => { return data ? data.replace(/\D+/g, "") : ""; }; const capitalize = (data = "") => { return data.charAt(0).toUpperCase() + data.slice(1); }; const deCapitalize = (data = "") => { return data.charAt(0).toLowerCase() + data.slice(1); }; const stringToUnderscore = (data = "") => { return data.split(" ").join("_").toLowerCase(); }; const underscoreToString = (data = "") => { return data ? data.split("_").join(" ").toLowerCase() : data; }; const truncate = (data = "", count = 80, ellipsis = true) => { return data ? data.length >= count && ellipsis ? data.slice(0, count) + "..." : data.slice(0, count) : null; }; const toPhone = (value = "") => { if (value.length === 10) { return value.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3"); } return "--"; }; const toCurrency = (value, precision = 2) => { return Accounting.formatMoney(value, "$", precision); }; const toNumber = (value, decimal = 0) => { return Accounting.formatNumber(value, decimal); }; const toShortNumber = (value = 0, decimal = 1) => { return abbreviateNumber(value, decimal); }; const toPercent = (value = 0) => { return value * 100 + "%"; }; const toCents = (value = 0) => { return value ? value * 100 : 0; }; const fromCents = (value = 0) => { return value ? value / 100 : 0; }; export { camelToDash, camelToString, camelToUnderscore, capitalize, dashToCamel, dashToCapital, dashToString, dashToUnderscore, deCapitalize, fromCents, phoneToString, stringToUnderscore, toCents, toCurrency, toNumber, toPercent, toPhone, toShortNumber, truncate, underscoreToString };