1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
/**
* @name string-trim-spaces-only
* @fileoverview Like String.trim() but you can choose granularly what to trim
* @version 3.1.0
* @author Roy Revelt, Codsen Ltd
* @license MIT
* {@link https://codsen.com/os/string-trim-spaces-only/}
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
var _typeof = require('@babel/runtime/helpers/typeof');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
var version$1 = "3.1.0";
var version = version$1;
var defaults = {
classicTrim: false,
cr: false,
lf: false,
tab: false,
space: true,
nbsp: false
};
function trimSpaces(str, originalOpts) {
if (typeof str !== "string") {
throw new Error("string-trim-spaces-only: [THROW_ID_01] input must be string! It was given as ".concat(_typeof__default['default'](str), ", equal to:\n").concat(JSON.stringify(str, null, 4)));
}
var opts = _objectSpread__default['default'](_objectSpread__default['default']({}, defaults), originalOpts);
function check(_char) {
return opts.classicTrim && !_char.trim() || !opts.classicTrim && (opts.space && _char === " " || opts.cr && _char === "\r" || opts.lf && _char === "\n" || opts.tab && _char === "\t" || opts.nbsp && _char === "\xA0");
}
var newStart;
var newEnd;
if (str.length) {
if (check(str[0])) {
for (var i = 0, len = str.length; i < len; i++) {
if (!check(str[i])) {
newStart = i;
break;
}
if (i === str.length - 1) {
return {
res: "",
ranges: [[0, str.length]]
};
}
}
}
if (check(str[str.length - 1])) {
for (var _i = str.length; _i--;) {
if (!check(str[_i])) {
newEnd = _i + 1;
break;
}
}
}
if (newStart) {
if (newEnd) {
return {
res: str.slice(newStart, newEnd),
ranges: [[0, newStart], [newEnd, str.length]]
};
}
return {
res: str.slice(newStart),
ranges: [[0, newStart]]
};
}
if (newEnd) {
return {
res: str.slice(0, newEnd),
ranges: [[newEnd, str.length]]
};
}
return {
res: str,
ranges: []
};
}
return {
res: "",
ranges: []
};
}
exports.defaults = defaults;
exports.trimSpaces = trimSpaces;
exports.version = version;
|