Files
hexabot/api/src/utils/helpers/misc.ts
2025-01-02 16:03:06 +01:00

34 lines
1.5 KiB
TypeScript

/*
* Copyright © 2024 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
*/
export const isEmpty = (value: string): boolean => {
return value === undefined || value === null || value === '';
};
export const hyphenToUnderscore = (str: string) => {
return str.replaceAll('-', '_');
};
export const kebabCase = (input: string): string => {
return input
.replace(/([a-z])([A-Z])/g, '$1-$2') // Add a dash between lowercase and uppercase letters
.replace(/[\s_]+/g, '-') // Replace spaces and underscores with a dash
.toLowerCase(); // Convert the entire string to lowercase
};
export const camelCase = (input: string): string => {
return input
.replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : '')) // Replace dashes, underscores, and spaces, capitalizing the following letter
.replace(/^./, (char) => char.toLowerCase()); // Ensure the first character is lowercase
};
export const upperFirst = (input: string): string => {
if (!input) return input; // Return as is if the input is empty
return input.charAt(0).toUpperCase() + input.slice(1);
};