@playbooks/utils
Version:
A collection of utilities used for Playbooks.
88 lines (87 loc) • 2.53 kB
JavaScript
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
};