@jdeighan/coffee-utils 10.0.16 → 11.0.0
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.
- package/package.json +1 -1
- package/src/block_utils.coffee +5 -4
- package/src/block_utils.js +6 -3
- package/src/coffee_utils.coffee +6 -0
- package/src/coffee_utils.js +5 -0
- package/src/indent_utils.coffee +11 -4
- package/src/indent_utils.js +16 -7
package/package.json
CHANGED
package/src/block_utils.coffee
CHANGED
@@ -5,8 +5,9 @@ import readline from 'readline'
|
|
5
5
|
|
6
6
|
import {assert, error, croak} from '@jdeighan/unit-tester/utils'
|
7
7
|
import {
|
8
|
-
undef, pass, defined,
|
9
|
-
|
8
|
+
undef, pass, defined, notdefined,
|
9
|
+
isEmpty, isString, isArray, nonEmpty, isArrayOfStrings,
|
10
|
+
escapeStr, rtrim, OL,
|
10
11
|
} from '@jdeighan/coffee-utils'
|
11
12
|
|
12
13
|
# ---------------------------------------------------------------------------
|
@@ -90,9 +91,9 @@ export arrayToBlock = (lLines) ->
|
|
90
91
|
|
91
92
|
export toBlock = (lLines) ->
|
92
93
|
|
93
|
-
if (lLines
|
94
|
+
if notdefined(lLines)
|
94
95
|
return undef
|
95
|
-
assert
|
96
|
+
assert isArrayOfStrings(lLines), "lLines is not an array: #{OL(lLines)}"
|
96
97
|
lNewLines = []
|
97
98
|
for line in lLines
|
98
99
|
if defined(line)
|
package/src/block_utils.js
CHANGED
@@ -14,12 +14,15 @@ import {
|
|
14
14
|
undef,
|
15
15
|
pass,
|
16
16
|
defined,
|
17
|
+
notdefined,
|
17
18
|
isEmpty,
|
18
19
|
isString,
|
19
20
|
isArray,
|
20
21
|
nonEmpty,
|
22
|
+
isArrayOfStrings,
|
23
|
+
escapeStr,
|
21
24
|
rtrim,
|
22
|
-
|
25
|
+
OL
|
23
26
|
} from '@jdeighan/coffee-utils';
|
24
27
|
|
25
28
|
// ---------------------------------------------------------------------------
|
@@ -113,10 +116,10 @@ export var arrayToBlock = function(lLines) {
|
|
113
116
|
// but undef items are ignored
|
114
117
|
export var toBlock = function(lLines) {
|
115
118
|
var i, lNewLines, len1, line;
|
116
|
-
if (lLines
|
119
|
+
if (notdefined(lLines)) {
|
117
120
|
return undef;
|
118
121
|
}
|
119
|
-
assert(
|
122
|
+
assert(isArrayOfStrings(lLines), `lLines is not an array: ${OL(lLines)}`);
|
120
123
|
lNewLines = [];
|
121
124
|
for (i = 0, len1 = lLines.length; i < len1; i++) {
|
122
125
|
line = lLines[i];
|
package/src/coffee_utils.coffee
CHANGED
@@ -647,3 +647,9 @@ export getOptions = (hOptions, hDefault={}) ->
|
|
647
647
|
return hOptions
|
648
648
|
else
|
649
649
|
return hDefault
|
650
|
+
|
651
|
+
# ---------------------------------------------------------------------------
|
652
|
+
|
653
|
+
export timestamp = () ->
|
654
|
+
|
655
|
+
return new Date().toLocaleTimeString("en-US")
|
package/src/coffee_utils.js
CHANGED
@@ -731,3 +731,8 @@ export var getOptions = function(hOptions, hDefault = {}) {
|
|
731
731
|
return hDefault;
|
732
732
|
}
|
733
733
|
};
|
734
|
+
|
735
|
+
// ---------------------------------------------------------------------------
|
736
|
+
export var timestamp = function() {
|
737
|
+
return new Date().toLocaleTimeString("en-US");
|
738
|
+
};
|
package/src/indent_utils.coffee
CHANGED
@@ -68,7 +68,8 @@ export isUndented = (line) ->
|
|
68
68
|
return (lMatches[0].length == 0)
|
69
69
|
|
70
70
|
# ---------------------------------------------------------------------------
|
71
|
-
# indented - add indentation to each string in a block
|
71
|
+
# indented - add indentation to each string in a block or array
|
72
|
+
# - returns the same type as input, i.e. array or string
|
72
73
|
|
73
74
|
export indented = (input, level=1, oneIndent="\t") ->
|
74
75
|
|
@@ -77,14 +78,20 @@ export indented = (input, level=1, oneIndent="\t") ->
|
|
77
78
|
return input
|
78
79
|
|
79
80
|
toAdd = indentation(level, oneIndent)
|
80
|
-
lInputLines = toArray(input)
|
81
81
|
|
82
|
-
|
82
|
+
# --- NOTE: toArray(input) just returns input if it's an array
|
83
|
+
# else it splits the string into an array of lines
|
84
|
+
lLines = for line in toArray(input)
|
83
85
|
if isEmpty(line)
|
84
86
|
""
|
85
87
|
else
|
86
88
|
"#{toAdd}#{line}"
|
87
|
-
|
89
|
+
if isArray(input)
|
90
|
+
return lLines
|
91
|
+
else if isString(input)
|
92
|
+
return toBlock(lLines)
|
93
|
+
else
|
94
|
+
croak "Invalid input; #{OL(input)}"
|
88
95
|
|
89
96
|
# ---------------------------------------------------------------------------
|
90
97
|
# undented - string with 1st line indentation removed for each line
|
package/src/indent_utils.js
CHANGED
@@ -81,20 +81,23 @@ export var isUndented = function(line) {
|
|
81
81
|
};
|
82
82
|
|
83
83
|
// ---------------------------------------------------------------------------
|
84
|
-
// indented - add indentation to each string in a block
|
84
|
+
// indented - add indentation to each string in a block or array
|
85
|
+
// - returns the same type as input, i.e. array or string
|
85
86
|
export var indented = function(input, level = 1, oneIndent = "\t") {
|
86
|
-
var
|
87
|
+
var lLines, line, toAdd;
|
87
88
|
assert(level >= 0, "indented(): negative level");
|
88
89
|
if (level === 0) {
|
89
90
|
return input;
|
90
91
|
}
|
91
92
|
toAdd = indentation(level, oneIndent);
|
92
|
-
|
93
|
+
// --- NOTE: toArray(input) just returns input if it's an array
|
94
|
+
// else it splits the string into an array of lines
|
93
95
|
lLines = (function() {
|
94
|
-
var i, len1, results;
|
96
|
+
var i, len1, ref, results;
|
97
|
+
ref = toArray(input);
|
95
98
|
results = [];
|
96
|
-
for (i = 0, len1 =
|
97
|
-
line =
|
99
|
+
for (i = 0, len1 = ref.length; i < len1; i++) {
|
100
|
+
line = ref[i];
|
98
101
|
if (isEmpty(line)) {
|
99
102
|
results.push("");
|
100
103
|
} else {
|
@@ -103,7 +106,13 @@ export var indented = function(input, level = 1, oneIndent = "\t") {
|
|
103
106
|
}
|
104
107
|
return results;
|
105
108
|
})();
|
106
|
-
|
109
|
+
if (isArray(input)) {
|
110
|
+
return lLines;
|
111
|
+
} else if (isString(input)) {
|
112
|
+
return toBlock(lLines);
|
113
|
+
} else {
|
114
|
+
return croak(`Invalid input; ${OL(input)}`);
|
115
|
+
}
|
107
116
|
};
|
108
117
|
|
109
118
|
// ---------------------------------------------------------------------------
|