UNPKG

@modern-kit/utils

Version:
1 lines 3.7 kB
{"version":3,"file":"index.cjs","sources":["../../../src/string/trimStart/index.ts"],"sourcesContent":["import { flatMap } from '../../array/flatMap';\nimport { isNil } from '../../validator/isNil';\n\n/**\n * @description 문자열에서 `선행 공백`을 제거합니다. `String.prototype.trimStart`와 동일하게 동작합니다.\n *\n * @param {string} str - 전체 문자열입니다.\n * @returns {string} - str에서 `선행 공백`을 제거한 문자열입니다.\n *\n * @example\n * trimStart(' abc'); // 'abc'\n */\nexport function trimStart(str: string): string;\n\n/**\n * @description 문자열에서 `지정된 문자들의 조합`을 문자열 시작 부분에서 찾아 제거합니다.\n *\n * chars가 문자열인 경우 해당 문자열을 각 문자로 나누고 문자열 시작 부분에서 이를 찾아 제거합니다.\n * - ex: `'+-*' -> ['+', '-', '*']`\n *\n * chars가 배열인 경우 배열 내 문자열을 각 문자로 나누고 문자열 시작 부분에서 이를 찾아 제거합니다.\n * - ex: `['+*', '-'] -> ['+', '*', '-']`\n *\n * @param {string} str - 전체 문자열입니다.\n * @param {string | string[]} chars - 문자열 앞부분에서 제거하고 싶은 문자열 혹은 문자열 배열입니다.\n * @returns {string} - str에서 앞에있는 공백 또는 지정된 chars를 제거한 문자열입니다.\n *\n * @example\n * trimStart('-_-abc', ['-', '_']); // 'abc-_-'\n * trimStart('+-*abc', ['+*', '-']); // 'abc'\n */\nexport function trimStart(str: string, chars: string | string[]): string;\n\n/**\n * @description\n * 문자열에서 `선행 공백` 또는 `지정된 문자`를 제거합니다.\n *\n * chars 매개변수가 주어지지 않으면 모든 선행 공백을 제거합니다. (`String.prototype.trimStart`와 동일하게 동작합니다.)\n *\n * chars가 문자열인 경우 해당 문자열을 각 문자로 나누고 문자열 시작 부분에서 이를 찾아 제거합니다.\n * - ex: `'+-*' -> ['+', '-', '*']`\n *\n * chars가 배열인 경우 배열 내 문자열을 각 문자로 나누고 문자열 시작 부분에서 이를 찾아 제거합니다.\n * - ex: `['+*', '-'] -> ['+', '*', '-']`\n *\n * @param {string} str - 전체 문자열입니다.\n * @param {string | string[]} chars - 문자열 앞부분에서 제거하고싶은 문자열 혹은 문자열 배열입니다.\n * @returns {string} - str에서 선행 공백 또는 지정된 chars를 제거한 문자열입니다.\n *\n * @example\n * trimStart(' abc'); // 'abc', 선행 공백 모두 제거\n *\n * @example\n * trimStart('--abc', '-'); // 'abc'\n * trimStart('+-*abc', '+-*'); // 'abc'\n *\n * @example\n * trimStart('-_-abc', ['-', '_']); // 'abc'\n * trimStart('+-*abc', ['+*', '-']); // 'abc'\n */\nexport function trimStart(str: string, chars?: string | string[]): string {\n if (isNil(chars)) {\n return str.trimStart();\n }\n\n const charsToUse = Array.isArray(chars)\n ? flatMap(chars, (char) => char.split(''))\n : chars;\n\n let startIndex = 0;\n\n while (startIndex < str.length && charsToUse.includes(str[startIndex])) {\n startIndex++;\n }\n\n return str.substring(startIndex);\n}\n"],"names":["isNil","flatMap"],"mappings":";;;;;;AA4DO,SAAS,SAAA,CAAU,KAAa,KAAA,EAAmC;AACxE,EAAA,IAAIA,oBAAA,CAAM,KAAK,CAAA,EAAG;AAChB,IAAA,OAAO,IAAI,SAAA,EAAU;AAAA,EACvB;AAEA,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAClCC,oBAAA,CAAQ,KAAA,EAAO,CAAC,IAAA,KAAS,IAAA,CAAK,KAAA,CAAM,EAAE,CAAC,CAAA,GACvC,KAAA;AAEJ,EAAA,IAAI,UAAA,GAAa,CAAA;AAEjB,EAAA,OAAO,UAAA,GAAa,IAAI,MAAA,IAAU,UAAA,CAAW,SAAS,GAAA,CAAI,UAAU,CAAC,CAAA,EAAG;AACtE,IAAA,UAAA,EAAA;AAAA,EACF;AAEA,EAAA,OAAO,GAAA,CAAI,UAAU,UAAU,CAAA;AACjC;;;;"}