@playbooks/utils
Version:
A collection of utilities used for Playbooks.
88 lines (87 loc) • 3.05 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const Accounting = require("accounting");
const jsAbbreviationNumber = require("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 jsAbbreviationNumber.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;
};
exports.camelToDash = camelToDash;
exports.camelToString = camelToString;
exports.camelToUnderscore = camelToUnderscore;
exports.capitalize = capitalize;
exports.dashToCamel = dashToCamel;
exports.dashToCapital = dashToCapital;
exports.dashToString = dashToString;
exports.dashToUnderscore = dashToUnderscore;
exports.deCapitalize = deCapitalize;
exports.fromCents = fromCents;
exports.phoneToString = phoneToString;
exports.stringToUnderscore = stringToUnderscore;
exports.toCents = toCents;
exports.toCurrency = toCurrency;
exports.toNumber = toNumber;
exports.toPercent = toPercent;
exports.toPhone = toPhone;
exports.toShortNumber = toShortNumber;
exports.truncate = truncate;
exports.underscoreToString = underscoreToString;