@jdeighan/coffee-utils 8.0.14 → 8.0.17
Sign up to get free protection for your applications and to get access to all the features.
- 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);
|