mirror of
https://github.com/swc-project/swc.git
synced 2024-12-26 07:02:28 +03:00
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
// Loaded from https://deno.land/x/ramda@v0.27.2/source/trim.js
|
|
|
|
|
|
import _curry1 from './internal/_curry1.js';
|
|
|
|
|
|
var ws = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
|
|
'\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028' +
|
|
'\u2029\uFEFF';
|
|
var zeroWidth = '\u200b';
|
|
var hasProtoTrim = (typeof String.prototype.trim === 'function');
|
|
/**
|
|
* Removes (strips) whitespace from both ends of the string.
|
|
*
|
|
* @func
|
|
* @memberOf R
|
|
* @since v0.6.0
|
|
* @category String
|
|
* @sig String -> String
|
|
* @param {String} str The string to trim.
|
|
* @return {String} Trimmed version of `str`.
|
|
* @example
|
|
*
|
|
* R.trim(' xyz '); //=> 'xyz'
|
|
* R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']
|
|
*/
|
|
var trim = !hasProtoTrim || (ws.trim() || !zeroWidth.trim()) ?
|
|
_curry1(function trim(str) {
|
|
var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');
|
|
var endRx = new RegExp('[' + ws + '][' + ws + ']*$');
|
|
return str.replace(beginRx, '').replace(endRx, '');
|
|
}) :
|
|
_curry1(function trim(str) {
|
|
return str.trim();
|
|
});
|
|
export default trim;
|