.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / lodash / trim.js
1 var baseToString = require('./_baseToString'),
2     baseTrim = require('./_baseTrim'),
3     castSlice = require('./_castSlice'),
4     charsEndIndex = require('./_charsEndIndex'),
5     charsStartIndex = require('./_charsStartIndex'),
6     stringToArray = require('./_stringToArray'),
7     toString = require('./toString');
8
9 /**
10  * Removes leading and trailing whitespace or specified characters from `string`.
11  *
12  * @static
13  * @memberOf _
14  * @since 3.0.0
15  * @category String
16  * @param {string} [string=''] The string to trim.
17  * @param {string} [chars=whitespace] The characters to trim.
18  * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
19  * @returns {string} Returns the trimmed string.
20  * @example
21  *
22  * _.trim('  abc  ');
23  * // => 'abc'
24  *
25  * _.trim('-_-abc-_-', '_-');
26  * // => 'abc'
27  *
28  * _.map(['  foo  ', '  bar  '], _.trim);
29  * // => ['foo', 'bar']
30  */
31 function trim(string, chars, guard) {
32   string = toString(string);
33   if (string && (guard || chars === undefined)) {
34     return baseTrim(string);
35   }
36   if (!string || !(chars = baseToString(chars))) {
37     return string;
38   }
39   var strSymbols = stringToArray(string),
40       chrSymbols = stringToArray(chars),
41       start = charsStartIndex(strSymbols, chrSymbols),
42       end = charsEndIndex(strSymbols, chrSymbols) + 1;
43
44   return castSlice(strSymbols, start, end).join('');
45 }
46
47 module.exports = trim;