diff --git a/package.json b/package.json index b013b0b..e6beb6a 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,7 @@ "test:watch": "jest --watch" }, "dependencies": { - "@expressots/boost-ts": "file:../boost-ts/expressots-boost-ts-1.3.0.tgz", - "axios": "^1.7.3", + "axios": "1.7.7", "chalk-animation": "2.0.3", "cli-progress": "3.12.0", "cli-table3": "0.6.5", diff --git a/src/generate/utils/command-utils.ts b/src/generate/utils/command-utils.ts index 7000346..4f73f9d 100644 --- a/src/generate/utils/command-utils.ts +++ b/src/generate/utils/command-utils.ts @@ -6,7 +6,7 @@ import { anyCaseToKebabCase, anyCaseToPascalCase, anyCaseToLowerCase, -} from "@expressots/boost-ts"; +} from "./string-utils"; import { printError } from "../../utils/cli-ui"; import { verifyIfFileExists } from "../../utils/verify-file-exists"; diff --git a/src/generate/utils/nonopininated-cmd.ts b/src/generate/utils/nonopininated-cmd.ts index 182ba40..e1ee281 100644 --- a/src/generate/utils/nonopininated-cmd.ts +++ b/src/generate/utils/nonopininated-cmd.ts @@ -2,7 +2,7 @@ import { anyCaseToCamelCase, anyCaseToKebabCase, anyCaseToPascalCase, -} from "@expressots/boost-ts"; +} from "./string-utils"; import { ExpressoConfig } from "@expressots/shared"; import { printGenerateSuccess } from "../../utils/cli-ui"; diff --git a/src/generate/utils/opinionated-cmd.ts b/src/generate/utils/opinionated-cmd.ts index d8a09c8..e4663d7 100644 --- a/src/generate/utils/opinionated-cmd.ts +++ b/src/generate/utils/opinionated-cmd.ts @@ -2,7 +2,7 @@ import { anyCaseToCamelCase, anyCaseToKebabCase, anyCaseToPascalCase, -} from "@expressots/boost-ts"; +} from "./string-utils"; import * as nodePath from "node:path"; import fs from "fs"; import { printGenerateSuccess } from "../../utils/cli-ui"; diff --git a/src/generate/utils/string-utils.ts b/src/generate/utils/string-utils.ts new file mode 100644 index 0000000..1c408d8 --- /dev/null +++ b/src/generate/utils/string-utils.ts @@ -0,0 +1,63 @@ +/** + * Converts a string from any case (camelCase, PascalCase, kebab-case, snake_case) to camelCase. + * @param str - The input string to be converted. + * @returns The converted string in camelCase. + */ +export function anyCaseToCamelCase(str: string): string { + return str + .replace(/[-_]+(.)?/g, (_, char) => (char ? char.toUpperCase() : '')) + .replace(/^[A-Z]/, (char) => char.toLowerCase()); +} + +/** + * Converts a string from any case (camelCase, PascalCase, kebab-case, snake_case) to kebab-case. + * @param str - The input string to be converted. + * @returns The converted string in kebab-case. + */ +export function anyCaseToKebabCase(str: string): string { + return str + .replace(/([a-z0-9])([A-Z])/g, '$1-$2') // Convert camelCase and PascalCase to kebab-case + .replace(/_/g, '-') // Convert snake_case to kebab-case + .toLowerCase(); // Ensure all characters are lowercase +} + +/** + * Converts a string from any case (camelCase, PascalCase, kebab-case, snake_case) to PascalCase. + * @param str - The input string to be converted. + * @returns The converted string in PascalCase. + */ +export function anyCaseToPascalCase(str: string): string { + return str + .replace(/[-_]+(.)?/g, (_, char) => (char ? char.toUpperCase() : '')) + .replace(/^[a-z]/, (char) => char.toUpperCase()); +} + +/** + * Converts a string from any case (camelCase, PascalCase, kebab-case, snake_case) to snake_case. + * @param str - The input string to be converted. + * @returns The converted string in snake_case. + */ +export function anyCaseToSnakeCase(str: string): string { + return str + .replace(/([a-z0-9])([A-Z])/g, '$1_$2') + .replace(/[-]+/g, '_') + .toLowerCase(); +} + +/** + * Converts a string from any case (camelCase, PascalCase, kebab-case, snake_case) to UPPER CASE. + * @param str - The input string to be converted. + * @returns The converted string in UPPER CASE. + */ +export function anyCaseToUpperCase(str: string): string { + return str.replace(/[-_]+(.)?/g, (_, char) => (char ? char.toUpperCase() : '')).toUpperCase(); +} + +/** + * Converts a string from any case (camelCase, PascalCase, kebab-case, snake_case) to lower case. + * @param str - The input string to be converted. + * @returns The converted string in lower case. + */ +export function anyCaseToLowerCase(str: string): string { + return str.replace(/[-_]+(.)?/g, (_, char) => (char ? char.toLowerCase() : '')).toLowerCase(); +} \ No newline at end of file