26 lines
807 B
TypeScript
26 lines
807 B
TypeScript
import { toString } from './_toString'
|
|
import { baseTrim } from './_baseTrim'
|
|
import { baseToString } from './_baseToString'
|
|
import { stringToArray } from './_stringToArray'
|
|
import { charsStartIndex } from './_charStartIndex'
|
|
import { charsEndIndex } from './_charsEndIndex'
|
|
import { castSlice } from './_castSlice'
|
|
|
|
export function trim(string: string, chars?: string): string {
|
|
string = toString(string)
|
|
|
|
if (string && chars === undefined) {
|
|
return baseTrim(string)
|
|
}
|
|
if (!string || !(chars = baseToString(chars as string))) {
|
|
return string
|
|
}
|
|
|
|
const strSymbols = stringToArray(string),
|
|
chrSymbols = stringToArray(chars),
|
|
start = charsStartIndex(strSymbols, chrSymbols),
|
|
end = charsEndIndex(strSymbols, chrSymbols) + 1
|
|
|
|
return castSlice(strSymbols, start, end).join('')
|
|
}
|