@techmely/utils
Version:
Collection of helpful JavaScript / TypeScript utils
65 lines (60 loc) • 1.71 kB
JavaScript
/*!
* @techmely/utils
* Copyright(c) 2021-2024 Techmely <techmely.creation@gmail.com>
* MIT Licensed
*/
import {
cacheStringFunction
} from "./chunk-JVHWN7V7.mjs";
// src/string.ts
var camelizeRE = /-(\w)/g;
var camelize = cacheStringFunction((str) => {
return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
});
var hyphenateRE = /\B([A-Z])/g;
var hyphenate = cacheStringFunction(
(str) => str.replace(hyphenateRE, "-$1").toLowerCase()
);
var snake2camel = cacheStringFunction((str) => {
return str.replace(/_([a-z])/g, (g) => g[1].toUpperCase());
});
var camel2snake = cacheStringFunction((str) => {
return str.replace(/[A-Z0-9]/g, (char) => `_${char.toLocaleLowerCase()}`);
});
var capitalizeFirst = cacheStringFunction((value) => {
return value.replace(/^./, value[0].toUpperCase());
});
function slugify(text) {
if (!text) {
return "";
}
return text.toString().normalize("NFKD").toLowerCase().trim().replace(/\s+/g, "-").replace(/[Đđ]/g, "d").replace(/[^\w-]+/g, "").replace(/--+/g, "-");
}
function getRandomString(length, alphanumeric) {
let str = "";
let i = 0;
const min = alphanumeric === "a" ? 10 : 0;
const max = alphanumeric === "n" ? 10 : 62;
while (i++ < length) {
let r = Math.trunc(Math.random() * (max - min) + min);
str += String.fromCodePoint(r += r > 9 ? r < 36 ? 55 : 61 : 48);
}
return str;
}
function cutString(value, limit) {
if (!value && typeof value !== "string")
return void 0;
if (value.length === 0)
return value;
return value.split("").slice(0, limit).join("");
}
export {
camelize,
hyphenate,
snake2camel,
camel2snake,
capitalizeFirst,
slugify,
getRandomString,
cutString
};