@jdeighan/coffee-utils 8.0.14 → 8.0.17
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 +2 -2
- package/src/arrow.coffee +11 -3
- package/src/arrow.js +10 -0
- package/src/coffee_utils.coffee +24 -11
- package/src/coffee_utils.js +30 -10
- package/src/debug_utils.coffee +3 -6
- package/src/debug_utils.js +2 -7
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@jdeighan/coffee-utils",
|
3
3
|
"type": "module",
|
4
|
-
"version": "8.0.
|
4
|
+
"version": "8.0.17",
|
5
5
|
"description": "A set of utility functions for CoffeeScript",
|
6
6
|
"main": "coffee_utils.js",
|
7
7
|
"exports": {
|
@@ -55,6 +55,6 @@
|
|
55
55
|
"svelte": "^3.49.0"
|
56
56
|
},
|
57
57
|
"devDependencies": {
|
58
|
-
"@jdeighan/unit-tester": "^2.0.
|
58
|
+
"@jdeighan/unit-tester": "^2.0.16"
|
59
59
|
}
|
60
60
|
}
|
package/src/arrow.coffee
CHANGED
@@ -9,10 +9,12 @@ export hbar = '─' # unicode 2500
|
|
9
9
|
export corner = '└' # unicode 2514
|
10
10
|
export arrowhead = '>'
|
11
11
|
export space = ' '
|
12
|
+
export dot = '.'
|
12
13
|
|
13
|
-
export oneIndent
|
14
|
-
export arrow
|
15
|
-
export clearIndent = space
|
14
|
+
export oneIndent = vbar + space + space + space
|
15
|
+
export arrow = corner + hbar + arrowhead + space
|
16
|
+
export clearIndent = space + space + space + space
|
17
|
+
export dotIndent = dot + space + space + space
|
16
18
|
|
17
19
|
# ---------------------------------------------------------------------------
|
18
20
|
|
@@ -30,6 +32,12 @@ export prefix = (level, option='none') ->
|
|
30
32
|
when 'noLast2Vbars'
|
31
33
|
assert (level >= 2), "prefix(), noLast2Vbars but level=#{OL(level)}"
|
32
34
|
return oneIndent.repeat(level-2) + clearIndent + clearIndent
|
35
|
+
when 'dotLastVbar'
|
36
|
+
assert (level >= 1), "prefix(), dotLastVbar but level=#{OL(level)}"
|
37
|
+
return oneIndent.repeat(level-1) + dotIndent
|
38
|
+
when 'dotLast2Vbars'
|
39
|
+
assert (level >= 2), "prefix(), dotLast2Vbars but level=#{OL(level)}"
|
40
|
+
return oneIndent.repeat(level-2) + dotIndent + clearIndent
|
33
41
|
else
|
34
42
|
return oneIndent.repeat(level)
|
35
43
|
|
package/src/arrow.js
CHANGED
@@ -18,12 +18,16 @@ export var arrowhead = '>';
|
|
18
18
|
|
19
19
|
export var space = ' ';
|
20
20
|
|
21
|
+
export var dot = '.';
|
22
|
+
|
21
23
|
export var oneIndent = vbar + space + space + space;
|
22
24
|
|
23
25
|
export var arrow = corner + hbar + arrowhead + space;
|
24
26
|
|
25
27
|
export var clearIndent = space + space + space + space;
|
26
28
|
|
29
|
+
export var dotIndent = dot + space + space + space;
|
30
|
+
|
27
31
|
// ---------------------------------------------------------------------------
|
28
32
|
export var prefix = function(level, option = 'none') {
|
29
33
|
switch (option) {
|
@@ -40,6 +44,12 @@ export var prefix = function(level, option = 'none') {
|
|
40
44
|
case 'noLast2Vbars':
|
41
45
|
assert(level >= 2, `prefix(), noLast2Vbars but level=${OL(level)}`);
|
42
46
|
return oneIndent.repeat(level - 2) + clearIndent + clearIndent;
|
47
|
+
case 'dotLastVbar':
|
48
|
+
assert(level >= 1, `prefix(), dotLastVbar but level=${OL(level)}`);
|
49
|
+
return oneIndent.repeat(level - 1) + dotIndent;
|
50
|
+
case 'dotLast2Vbars':
|
51
|
+
assert(level >= 2, `prefix(), dotLast2Vbars but level=${OL(level)}`);
|
52
|
+
return oneIndent.repeat(level - 2) + dotIndent + clearIndent;
|
43
53
|
default:
|
44
54
|
return oneIndent.repeat(level);
|
45
55
|
}
|
package/src/coffee_utils.coffee
CHANGED
@@ -151,12 +151,6 @@ export isBoolean = (x) ->
|
|
151
151
|
|
152
152
|
# ---------------------------------------------------------------------------
|
153
153
|
|
154
|
-
export isNumber = (x) ->
|
155
|
-
|
156
|
-
return typeof x == 'number' || x instanceof Number
|
157
|
-
|
158
|
-
# ---------------------------------------------------------------------------
|
159
|
-
|
160
154
|
export isObject = (x) ->
|
161
155
|
|
162
156
|
return (typeof x == 'object') \
|
@@ -280,14 +274,33 @@ export isRegExp = (x) ->
|
|
280
274
|
|
281
275
|
# ---------------------------------------------------------------------------
|
282
276
|
|
283
|
-
export
|
277
|
+
export isNumber = (x, hOptions={}) ->
|
278
|
+
|
279
|
+
result = (typeof x == 'number') || (x instanceof Number)
|
280
|
+
if result
|
281
|
+
if defined(hOptions.min) && (x < hOptions.min)
|
282
|
+
result = false
|
283
|
+
if defined(hOptions.max) && (x > hOptions.max)
|
284
|
+
result = false
|
285
|
+
return result
|
286
|
+
|
287
|
+
# ---------------------------------------------------------------------------
|
288
|
+
|
289
|
+
export isInteger = (x, hOptions={}) ->
|
284
290
|
|
285
291
|
if (typeof x == 'number')
|
286
|
-
|
287
|
-
else if (
|
288
|
-
|
292
|
+
result = Number.isInteger(x)
|
293
|
+
else if (x instanceof Number)
|
294
|
+
result = Number.isInteger(x.valueOf())
|
289
295
|
else
|
290
|
-
|
296
|
+
result = false
|
297
|
+
|
298
|
+
if result
|
299
|
+
if defined(hOptions.min) && (x < hOptions.min)
|
300
|
+
result = false
|
301
|
+
if defined(hOptions.max) && (x > hOptions.max)
|
302
|
+
result = false
|
303
|
+
return result
|
291
304
|
|
292
305
|
# ---------------------------------------------------------------------------
|
293
306
|
|
package/src/coffee_utils.js
CHANGED
@@ -144,11 +144,6 @@ export var isBoolean = function(x) {
|
|
144
144
|
return typeof x === 'boolean';
|
145
145
|
};
|
146
146
|
|
147
|
-
// ---------------------------------------------------------------------------
|
148
|
-
export var isNumber = function(x) {
|
149
|
-
return typeof x === 'number' || x instanceof Number;
|
150
|
-
};
|
151
|
-
|
152
147
|
// ---------------------------------------------------------------------------
|
153
148
|
export var isObject = function(x) {
|
154
149
|
return (typeof x === 'object') && !isString(x) && !isArray(x) && !isHash(x) && !isNumber(x);
|
@@ -280,14 +275,39 @@ export var isRegExp = function(x) {
|
|
280
275
|
};
|
281
276
|
|
282
277
|
// ---------------------------------------------------------------------------
|
283
|
-
export var
|
278
|
+
export var isNumber = function(x, hOptions = {}) {
|
279
|
+
var result;
|
280
|
+
result = (typeof x === 'number') || (x instanceof Number);
|
281
|
+
if (result) {
|
282
|
+
if (defined(hOptions.min) && (x < hOptions.min)) {
|
283
|
+
result = false;
|
284
|
+
}
|
285
|
+
if (defined(hOptions.max) && (x > hOptions.max)) {
|
286
|
+
result = false;
|
287
|
+
}
|
288
|
+
}
|
289
|
+
return result;
|
290
|
+
};
|
291
|
+
|
292
|
+
// ---------------------------------------------------------------------------
|
293
|
+
export var isInteger = function(x, hOptions = {}) {
|
294
|
+
var result;
|
284
295
|
if (typeof x === 'number') {
|
285
|
-
|
286
|
-
} else if (
|
287
|
-
|
296
|
+
result = Number.isInteger(x);
|
297
|
+
} else if (x instanceof Number) {
|
298
|
+
result = Number.isInteger(x.valueOf());
|
288
299
|
} else {
|
289
|
-
|
300
|
+
result = false;
|
301
|
+
}
|
302
|
+
if (result) {
|
303
|
+
if (defined(hOptions.min) && (x < hOptions.min)) {
|
304
|
+
result = false;
|
305
|
+
}
|
306
|
+
if (defined(hOptions.max) && (x > hOptions.max)) {
|
307
|
+
result = false;
|
308
|
+
}
|
290
309
|
}
|
310
|
+
return result;
|
291
311
|
};
|
292
312
|
|
293
313
|
// ---------------------------------------------------------------------------
|
package/src/debug_utils.coffee
CHANGED
@@ -111,12 +111,8 @@ export doTheLogging = (type, label, lObjects) ->
|
|
111
111
|
|
112
112
|
when 'enter'
|
113
113
|
log label, prefix(level)
|
114
|
-
|
115
|
-
|
116
|
-
itemPre = prefix(level+2, 'noLast2Vbars')
|
117
|
-
else
|
118
|
-
pre = prefix(level+1)
|
119
|
-
itemPre = prefix(level+2, 'noLastVbar')
|
114
|
+
pre = prefix(level+1, 'dotLastVbar')
|
115
|
+
itemPre = prefix(level+2, 'dotLast2Vbars')
|
120
116
|
for obj,i in lObjects
|
121
117
|
logItem "arg[#{i}]", obj, pre, itemPre
|
122
118
|
|
@@ -126,6 +122,7 @@ export doTheLogging = (type, label, lObjects) ->
|
|
126
122
|
itemPre = prefix(level+1, 'noLast2Vbars')
|
127
123
|
for obj,i in lObjects
|
128
124
|
logItem "ret[#{i}]", obj, pre, itemPre
|
125
|
+
|
129
126
|
when 'string'
|
130
127
|
pre = prefix(level)
|
131
128
|
itemPre = prefix(level+1, 'noLastVbar')
|
package/src/debug_utils.js
CHANGED
@@ -151,13 +151,8 @@ export var doTheLogging = function(type, label, lObjects) {
|
|
151
151
|
switch (type) {
|
152
152
|
case 'enter':
|
153
153
|
log(label, prefix(level));
|
154
|
-
|
155
|
-
|
156
|
-
itemPre = prefix(level + 2, 'noLast2Vbars');
|
157
|
-
} else {
|
158
|
-
pre = prefix(level + 1);
|
159
|
-
itemPre = prefix(level + 2, 'noLastVbar');
|
160
|
-
}
|
154
|
+
pre = prefix(level + 1, 'dotLastVbar');
|
155
|
+
itemPre = prefix(level + 2, 'dotLast2Vbars');
|
161
156
|
for (i = j = 0, len = lObjects.length; j < len; i = ++j) {
|
162
157
|
obj = lObjects[i];
|
163
158
|
logItem(`arg[${i}]`, obj, pre, itemPre);
|