UNPKG

@c_s_v_s_subrahmanyam/string-utils

Version:

A comprehensive utility library for advanced string operations.

55 lines (38 loc) 1.69 kB
// String transformations module.exports = { toUpperCase: (str) => str.toUpperCase(), toLowerCase: (str) => str.toLowerCase(), reverse: (str) => str.split('').reverse().join(''), concatenate: (...args) => args.join(''), replace: (str, search, replace) => str.split(search).join(replace), trim: (str) => str.trim(), padStart: (str, length, char = ' ') => str.padStart(length, char), padEnd: (str, length, char = ' ') => str.padEnd(length, char), caseConversion: (str, targetCase) => { if (targetCase === 'camel') { return str .toLowerCase() .replace(/[^a-zA-Z0-9]+(.)/g, (_, char) => char.toUpperCase()); } if (targetCase === 'snake') return str.replace(/\s+/g, '_').toLowerCase(); if (targetCase === 'kebab') return str.replace(/\s+/g, '-').toLowerCase(); return str; }, }; module.exports = { ...module.exports, // Encoding and Decoding encodeBase64: (str) => Buffer.from(str).toString('base64'), decodeBase64: (str) => Buffer.from(str, 'base64').toString('utf-8'), encodeURI: (str) => encodeURIComponent(str), decodeURI: (str) => decodeURIComponent(str), // Padding leftPad: (str, length, char = ' ') => str.padStart(length, char), rightPad: (str, length, char = ' ') => str.padEnd(length, char), centerPad: (str, length, char = ' ') => { const totalPadding = length - str.length; const left = Math.floor(totalPadding / 2); const right = totalPadding - left; return char.repeat(left) + str + char.repeat(right); }, };