/**
 * 將字符串轉換為 camelCase 或 PascalCase 風格的命名約定
 * @param str 要轉換的字符串
 * @param isPascalCase 指示是否轉換為 PascalCase 的布爾值，默認為 false
 * @returns 轉換後的字符串
 */
export function camelCase(str: string, isPascalCase: boolean = false): string {
    // 將字符串分割成單詞數組
    let words: string[] = str.split(/[\s_-]+/);
  
    // 將數組中的每個單詞首字母大寫（除了第壹個單詞）
    let camelCased: string[] = words.map((word, index):string => {
      if (index == 0 && !isPascalCase) {
        return word.toLowerCase(); // 第壹個單詞全小寫
      }
      return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
    });
  
    // 將數組中的單詞拼接成壹個字符串
    return camelCased.join('');
};