Skip to content

Commit ffd19e8

Browse files
feature/issue-#30 #47: ModuleString isUpperSnakeCase
1 parent 1fac943 commit ffd19e8

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/modules/string/string.module.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
export class ModuleString {
22
public toCamelCase(stringInKebabCase: string): string {
33
if (stringInKebabCase.length === 0) return ''
4-
54
const array = stringInKebabCase.split('-')
65
const firstWord = array[0]
76
const otherWord = array.map((item, index) => {
@@ -51,30 +50,37 @@ export class ModuleString {
5150
}
5251

5352
private isFirstLetterUpperCase(stringInAnyCase: string): boolean {
53+
if (stringInAnyCase.length === 0) return false
5454
return stringInAnyCase.charAt(0).toUpperCase() === stringInAnyCase.charAt(0)
5555
}
5656

5757
private isFirstLetterLowerCase(stringInAnyCase: string): boolean {
58+
if (stringInAnyCase.length === 0) return false
5859
return stringInAnyCase.charAt(0).toLowerCase() === stringInAnyCase.charAt(0)
5960
}
6061

6162
private isStringContainsDash(stringInAnyCase: string): boolean {
63+
if (stringInAnyCase.length === 0) return false
6264
return stringInAnyCase.search(/-/g) > 0
6365
}
6466

6567
private isStringContainsUnderlining(stringInAnyCase: string): boolean {
68+
if (stringInAnyCase.length === 0) return false
6669
return stringInAnyCase.search(/_/g) > 0
6770
}
6871

6972
private isStringUpperCase(stringInAnyCase: string): boolean {
73+
if (stringInAnyCase.length === 0) return false
7074
return stringInAnyCase.toUpperCase() === stringInAnyCase
7175
}
7276

7377
private isStringLowerCase(stringInAnyCase: string): boolean {
78+
if (stringInAnyCase.length === 0) return false
7479
return stringInAnyCase.toLowerCase() === stringInAnyCase
7580
}
7681

7782
public isCamelCase(stringInAnyCase: string): boolean {
83+
if (stringInAnyCase.length === 0) return false
7884
if (this.isFirstLetterUpperCase(stringInAnyCase)) return false
7985
if (this.isStringContainsDash(stringInAnyCase)) return false
8086
if (this.isStringContainsUnderlining(stringInAnyCase)) return false
@@ -83,10 +89,19 @@ export class ModuleString {
8389
}
8490

8591
public isPascalCase(stringInAnyCase: string): boolean {
92+
if (stringInAnyCase.length === 0) return false
8693
if (this.isFirstLetterLowerCase(stringInAnyCase)) return false
8794
if (this.isStringContainsDash(stringInAnyCase)) return false
8895
if (this.isStringContainsUnderlining(stringInAnyCase)) return false
8996
if (this.isStringUpperCase(stringInAnyCase)) return false
9097
return true
9198
}
99+
100+
public isUpperSnakeCase(stringInAnyCase: string): boolean {
101+
if (stringInAnyCase.length === 0) return false
102+
if (this.isStringUpperCase(stringInAnyCase) && this.isStringContainsUnderlining(stringInAnyCase)) {
103+
return true
104+
}
105+
return false
106+
}
92107
}

0 commit comments

Comments
 (0)