@naturalcycles/js-lib 14.115.0 → 14.115.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,6 +24,8 @@ exports._lowerFirst = _lowerFirst;
24
24
  */
25
25
  function _split(str, separator, limit) {
26
26
  const parts = str.split(separator);
27
+ if (parts.length <= limit)
28
+ return parts;
27
29
  return [...parts.slice(0, limit - 1), parts.slice(limit - 1).join(separator)];
28
30
  }
29
31
  exports._split = _split;
@@ -38,7 +40,9 @@ exports._removeWhitespace = _removeWhitespace;
38
40
  function _truncate(s, maxLen, omission = '...') {
39
41
  if (!s || s.length <= maxLen)
40
42
  return s;
41
- return s.substr(0, maxLen - omission.length) + omission;
43
+ if (maxLen <= omission.length)
44
+ return omission;
45
+ return s.slice(0, maxLen - omission.length) + omission;
42
46
  }
43
47
  exports._truncate = _truncate;
44
48
  /**
@@ -48,30 +52,32 @@ exports._truncate = _truncate;
48
52
  function _truncateMiddle(s, maxLen, omission = '...') {
49
53
  if (!s || s.length <= maxLen)
50
54
  return s;
55
+ if (maxLen <= omission.length)
56
+ return omission;
51
57
  const mark1 = Math.round((maxLen - omission.length) / 2);
52
58
  const mark2 = s.length - Math.floor((maxLen - omission.length) / 2);
53
- return s.substr(0, mark1) + omission + s.substr(mark2);
59
+ return s.slice(0, mark1) + omission + s.slice(mark2);
54
60
  }
55
61
  exports._truncateMiddle = _truncateMiddle;
56
62
  // These functions are modeled after Kotlin's String API
57
63
  function _substringBefore(s, delimiter) {
58
64
  const pos = s.indexOf(delimiter);
59
- return s.substr(0, pos !== -1 ? pos : undefined);
65
+ return s.slice(0, pos !== -1 ? pos : undefined);
60
66
  }
61
67
  exports._substringBefore = _substringBefore;
62
68
  function _substringBeforeLast(s, delimiter) {
63
69
  const pos = s.lastIndexOf(delimiter);
64
- return s.substr(0, pos !== -1 ? pos : undefined);
70
+ return s.slice(0, pos !== -1 ? pos : undefined);
65
71
  }
66
72
  exports._substringBeforeLast = _substringBeforeLast;
67
73
  function _substringAfter(s, delimiter) {
68
74
  const pos = s.indexOf(delimiter);
69
- return pos !== -1 ? s.substr(pos + 1) : s;
75
+ return pos !== -1 ? s.slice(pos + 1) : s;
70
76
  }
71
77
  exports._substringAfter = _substringAfter;
72
78
  function _substringAfterLast(s, delimiter) {
73
79
  const pos = s.lastIndexOf(delimiter);
74
- return pos !== -1 ? s.substr(pos + 1) : s;
80
+ return pos !== -1 ? s.slice(pos + 1) : s;
75
81
  }
76
82
  exports._substringAfterLast = _substringAfterLast;
77
83
  /**
@@ -18,6 +18,8 @@ export function _lowerFirst(s) {
18
18
  */
19
19
  export function _split(str, separator, limit) {
20
20
  const parts = str.split(separator);
21
+ if (parts.length <= limit)
22
+ return parts;
21
23
  return [...parts.slice(0, limit - 1), parts.slice(limit - 1).join(separator)];
22
24
  }
23
25
  export function _removeWhitespace(s) {
@@ -30,7 +32,9 @@ export function _removeWhitespace(s) {
30
32
  export function _truncate(s, maxLen, omission = '...') {
31
33
  if (!s || s.length <= maxLen)
32
34
  return s;
33
- return s.substr(0, maxLen - omission.length) + omission;
35
+ if (maxLen <= omission.length)
36
+ return omission;
37
+ return s.slice(0, maxLen - omission.length) + omission;
34
38
  }
35
39
  /**
36
40
  * _.truncateMiddle('abcdefghijklmnopqrstuvwxyz', 10)
@@ -39,26 +43,28 @@ export function _truncate(s, maxLen, omission = '...') {
39
43
  export function _truncateMiddle(s, maxLen, omission = '...') {
40
44
  if (!s || s.length <= maxLen)
41
45
  return s;
46
+ if (maxLen <= omission.length)
47
+ return omission;
42
48
  const mark1 = Math.round((maxLen - omission.length) / 2);
43
49
  const mark2 = s.length - Math.floor((maxLen - omission.length) / 2);
44
- return s.substr(0, mark1) + omission + s.substr(mark2);
50
+ return s.slice(0, mark1) + omission + s.slice(mark2);
45
51
  }
46
52
  // These functions are modeled after Kotlin's String API
47
53
  export function _substringBefore(s, delimiter) {
48
54
  const pos = s.indexOf(delimiter);
49
- return s.substr(0, pos !== -1 ? pos : undefined);
55
+ return s.slice(0, pos !== -1 ? pos : undefined);
50
56
  }
51
57
  export function _substringBeforeLast(s, delimiter) {
52
58
  const pos = s.lastIndexOf(delimiter);
53
- return s.substr(0, pos !== -1 ? pos : undefined);
59
+ return s.slice(0, pos !== -1 ? pos : undefined);
54
60
  }
55
61
  export function _substringAfter(s, delimiter) {
56
62
  const pos = s.indexOf(delimiter);
57
- return pos !== -1 ? s.substr(pos + 1) : s;
63
+ return pos !== -1 ? s.slice(pos + 1) : s;
58
64
  }
59
65
  export function _substringAfterLast(s, delimiter) {
60
66
  const pos = s.lastIndexOf(delimiter);
61
- return pos !== -1 ? s.substr(pos + 1) : s;
67
+ return pos !== -1 ? s.slice(pos + 1) : s;
62
68
  }
63
69
  /**
64
70
  * Returns the substring between LAST `leftDelimiter` and then FIRST `rightDelimiter`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturalcycles/js-lib",
3
- "version": "14.115.0",
3
+ "version": "14.115.2",
4
4
  "scripts": {
5
5
  "prepare": "husky install",
6
6
  "build-prod": "build-prod-esm-cjs",
@@ -22,6 +22,7 @@ export function _lowerFirst(s: string): string {
22
22
  */
23
23
  export function _split(str: string, separator: string, limit: number): string[] {
24
24
  const parts = str.split(separator)
25
+ if (parts.length <= limit) return parts
25
26
  return [...parts.slice(0, limit - 1), parts.slice(limit - 1).join(separator)]
26
27
  }
27
28
 
@@ -35,8 +36,8 @@ export function _removeWhitespace(s: string): string {
35
36
  */
36
37
  export function _truncate(s: string, maxLen: number, omission = '...'): string {
37
38
  if (!s || s.length <= maxLen) return s
38
-
39
- return s.substr(0, maxLen - omission.length) + omission
39
+ if (maxLen <= omission.length) return omission
40
+ return s.slice(0, maxLen - omission.length) + omission
40
41
  }
41
42
 
42
43
  /**
@@ -45,32 +46,33 @@ export function _truncate(s: string, maxLen: number, omission = '...'): string {
45
46
  */
46
47
  export function _truncateMiddle(s: string, maxLen: number, omission = '...'): string {
47
48
  if (!s || s.length <= maxLen) return s
49
+ if (maxLen <= omission.length) return omission
48
50
 
49
51
  const mark1 = Math.round((maxLen - omission.length) / 2)
50
52
  const mark2 = s.length - Math.floor((maxLen - omission.length) / 2)
51
- return s.substr(0, mark1) + omission + s.substr(mark2)
53
+ return s.slice(0, mark1) + omission + s.slice(mark2)
52
54
  }
53
55
 
54
56
  // These functions are modeled after Kotlin's String API
55
57
 
56
58
  export function _substringBefore(s: string, delimiter: string): string {
57
59
  const pos = s.indexOf(delimiter)
58
- return s.substr(0, pos !== -1 ? pos : undefined)
60
+ return s.slice(0, pos !== -1 ? pos : undefined)
59
61
  }
60
62
 
61
63
  export function _substringBeforeLast(s: string, delimiter: string): string {
62
64
  const pos = s.lastIndexOf(delimiter)
63
- return s.substr(0, pos !== -1 ? pos : undefined)
65
+ return s.slice(0, pos !== -1 ? pos : undefined)
64
66
  }
65
67
 
66
68
  export function _substringAfter(s: string, delimiter: string): string {
67
69
  const pos = s.indexOf(delimiter)
68
- return pos !== -1 ? s.substr(pos + 1) : s
70
+ return pos !== -1 ? s.slice(pos + 1) : s
69
71
  }
70
72
 
71
73
  export function _substringAfterLast(s: string, delimiter: string): string {
72
74
  const pos = s.lastIndexOf(delimiter)
73
- return pos !== -1 ? s.substr(pos + 1) : s
75
+ return pos !== -1 ? s.slice(pos + 1) : s
74
76
  }
75
77
 
76
78
  /**