@jdeighan/coffee-utils 11.0.2 → 11.0.3
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 +14 -13
- package/src/DataStores.coffee +6 -15
- package/src/DataStores.js +8 -21
- package/src/Section.coffee +1 -1
- package/src/Section.js +1 -2
- package/src/SectionMap.coffee +5 -7
- package/src/SectionMap.js +6 -14
- package/src/arrow.coffee +1 -1
- package/src/arrow.js +1 -1
- package/src/{block_utils.coffee → block.coffee} +5 -5
- package/src/{block_utils.js → block.js} +4 -6
- package/src/{browser_utils.coffee → browser.coffee} +1 -1
- package/src/{browser_utils.js → browser.js} +1 -1
- package/src/{debug_utils.coffee → debug.coffee} +7 -12
- package/src/{debug_utils.js → debug.js} +6 -25
- package/src/{fs_utils.coffee → fs.coffee} +5 -40
- package/src/{fs_utils.js → fs.js} +9 -51
- package/src/fsa.coffee +1 -2
- package/src/fsa.js +2 -5
- package/src/{html_utils.coffee → html.coffee} +5 -6
- package/src/{html_utils.js → html.js} +5 -10
- package/src/{indent_utils.coffee → indent.coffee} +7 -9
- package/src/{indent_utils.js → indent.js} +7 -9
- package/src/{log_utils.coffee → log.coffee} +5 -44
- package/src/{log_utils.js → log.js} +6 -55
- package/src/placeholders.coffee +1 -1
- package/src/placeholders.js +1 -2
- package/src/{server_utils.coffee → server.coffee} +1 -1
- package/src/{server_utils.js → server.js} +1 -1
- package/src/{call_stack.coffee → stack.coffee} +2 -2
- package/src/{call_stack.js → stack.js} +2 -2
- package/src/{svelte_utils.coffee → svelte.coffee} +4 -5
- package/src/{svelte_utils.js → svelte.js} +6 -10
- package/src/taml.coffee +20 -25
- package/src/taml.js +25 -34
- package/src/{coffee_utils.coffee → utils.coffee} +3 -4
- package/src/{coffee_utils.js → utils.js} +8 -15
@@ -1,12 +1,12 @@
|
|
1
1
|
// Generated by CoffeeScript 2.7.0
|
2
|
-
//
|
2
|
+
// log.coffee
|
3
3
|
var doDebugLog, fixForTerminal, fourSpaces, loaded, maxOneLine, putBlock, putstr;
|
4
4
|
|
5
5
|
import {
|
6
|
+
LOG,
|
6
7
|
assert,
|
7
|
-
error,
|
8
8
|
croak
|
9
|
-
} from '@jdeighan/
|
9
|
+
} from '@jdeighan/exceptions';
|
10
10
|
|
11
11
|
import {
|
12
12
|
undef,
|
@@ -23,16 +23,9 @@ import {
|
|
23
23
|
} from '@jdeighan/coffee-utils';
|
24
24
|
|
25
25
|
import {
|
26
|
-
|
26
|
+
toArray
|
27
27
|
} from '@jdeighan/coffee-utils/block';
|
28
28
|
|
29
|
-
import {
|
30
|
-
tabify,
|
31
|
-
untabify,
|
32
|
-
indentation,
|
33
|
-
indented
|
34
|
-
} from '@jdeighan/coffee-utils/indent';
|
35
|
-
|
36
29
|
import {
|
37
30
|
toTAML
|
38
31
|
} from '@jdeighan/coffee-utils/taml';
|
@@ -54,48 +47,6 @@ export var debugLog = function(flag = true) {
|
|
54
47
|
}
|
55
48
|
};
|
56
49
|
|
57
|
-
// ---------------------------------------------------------------------------
|
58
|
-
// This is useful for debugging
|
59
|
-
export var LOG = function(...lArgs) {
|
60
|
-
var item, label;
|
61
|
-
[label, item] = lArgs;
|
62
|
-
if (lArgs.length > 1) {
|
63
|
-
// --- There's both a label and an item
|
64
|
-
if (item === undef) {
|
65
|
-
console.log(`${label} = undef`);
|
66
|
-
} else if (item === null) {
|
67
|
-
console.log(`${label} = null`);
|
68
|
-
} else {
|
69
|
-
console.log(sep_dash);
|
70
|
-
console.log(`${label}:`);
|
71
|
-
if (isString(item)) {
|
72
|
-
console.log(untabify(item));
|
73
|
-
} else {
|
74
|
-
console.log(untabify(orderedStringify(item)));
|
75
|
-
}
|
76
|
-
console.log(sep_dash);
|
77
|
-
}
|
78
|
-
} else {
|
79
|
-
console.log(label);
|
80
|
-
}
|
81
|
-
return true; // to allow use in boolean expressions
|
82
|
-
};
|
83
|
-
|
84
|
-
|
85
|
-
// --- Use this instead to make it easier to remove all instances
|
86
|
-
export var DEBUG = LOG; // synonym
|
87
|
-
|
88
|
-
|
89
|
-
// ---------------------------------------------------------------------------
|
90
|
-
export var LOGLINES = function(label, lLines) {
|
91
|
-
var i, len, line;
|
92
|
-
LOG(`${label}:`);
|
93
|
-
for (i = 0, len = lLines.length; i < len; i++) {
|
94
|
-
line = lLines[i];
|
95
|
-
LOG(`${OL(line)}`);
|
96
|
-
}
|
97
|
-
};
|
98
|
-
|
99
50
|
// ---------------------------------------------------------------------------
|
100
51
|
export var setStringifier = function(func) {
|
101
52
|
var orgStringifier;
|
@@ -210,7 +161,7 @@ export var logItem = function(label, item, pre = '', itemPre = undef) {
|
|
210
161
|
if (label) {
|
211
162
|
putstr(`${pre}${label}:`);
|
212
163
|
}
|
213
|
-
ref =
|
164
|
+
ref = toArray(stringify(item, true));
|
214
165
|
// --- escape special chars
|
215
166
|
for (i = 0, len = ref.length; i < len; i++) {
|
216
167
|
str = ref[i];
|
@@ -239,7 +190,7 @@ fixForTerminal = function(str) {
|
|
239
190
|
putBlock = function(item, prefix = '') {
|
240
191
|
var i, len, line, ref;
|
241
192
|
putstr(`${prefix}${sep_eq}`);
|
242
|
-
ref =
|
193
|
+
ref = toArray(item);
|
243
194
|
for (i = 0, len = ref.length; i < len; i++) {
|
244
195
|
line = ref[i];
|
245
196
|
putstr(`${prefix}${escapeStr(line)}`);
|
package/src/placeholders.coffee
CHANGED
package/src/placeholders.js
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
#
|
1
|
+
# svelte.coffee
|
2
2
|
|
3
|
-
import {assert,
|
3
|
+
import {assert, croak, LOG} from '@jdeighan/exceptions'
|
4
4
|
import {isFunction} from '@jdeighan/coffee-utils'
|
5
|
-
import {log} from '@jdeighan/coffee-utils/log'
|
6
5
|
|
7
6
|
# ---------------------------------------------------------------------------
|
8
7
|
# svelteSourceCodeEsc - to display source code for a *.starbucks page
|
@@ -33,10 +32,10 @@ export onInterval = (func, secs, doLog=false) ->
|
|
33
32
|
assert isFunction(func), "onInterval(): 1st arg not a function"
|
34
33
|
ms = Math.floor(1000 * secs)
|
35
34
|
if doLog
|
36
|
-
|
35
|
+
LOG "calling func every #{ms} ms."
|
37
36
|
interval = setInterval(func, ms)
|
38
37
|
|
39
38
|
return () ->
|
40
39
|
if doLog
|
41
|
-
|
40
|
+
LOG "destroying interval timer"
|
42
41
|
clearInterval interval
|
@@ -1,19 +1,15 @@
|
|
1
1
|
// Generated by CoffeeScript 2.7.0
|
2
|
-
//
|
2
|
+
// svelte.coffee
|
3
3
|
import {
|
4
4
|
assert,
|
5
|
-
|
6
|
-
|
7
|
-
} from '@jdeighan/
|
5
|
+
croak,
|
6
|
+
LOG
|
7
|
+
} from '@jdeighan/exceptions';
|
8
8
|
|
9
9
|
import {
|
10
10
|
isFunction
|
11
11
|
} from '@jdeighan/coffee-utils';
|
12
12
|
|
13
|
-
import {
|
14
|
-
log
|
15
|
-
} from '@jdeighan/coffee-utils/log';
|
16
|
-
|
17
13
|
// ---------------------------------------------------------------------------
|
18
14
|
// svelteSourceCodeEsc - to display source code for a *.starbucks page
|
19
15
|
export var svelteSourceCodeEsc = function(str) {
|
@@ -32,12 +28,12 @@ export var onInterval = function(func, secs, doLog = false) {
|
|
32
28
|
assert(isFunction(func), "onInterval(): 1st arg not a function");
|
33
29
|
ms = Math.floor(1000 * secs);
|
34
30
|
if (doLog) {
|
35
|
-
|
31
|
+
LOG(`calling func every ${ms} ms.`);
|
36
32
|
}
|
37
33
|
interval = setInterval(func, ms);
|
38
34
|
return function() {
|
39
35
|
if (doLog) {
|
40
|
-
|
36
|
+
LOG("destroying interval timer");
|
41
37
|
}
|
42
38
|
return clearInterval(interval);
|
43
39
|
};
|
package/src/taml.coffee
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
import yaml from 'js-yaml'
|
4
4
|
|
5
|
-
import {assert,
|
5
|
+
import {assert, croak} from '@jdeighan/exceptions'
|
6
6
|
import {
|
7
|
-
undef, defined, notdefined,
|
7
|
+
undef, defined, notdefined, OL, chomp, escapeStr,
|
8
|
+
isString, isObject, isEmpty,
|
8
9
|
} from '@jdeighan/coffee-utils'
|
9
|
-
import {
|
10
|
-
import {slurp} from '@jdeighan/coffee-utils/fs'
|
11
|
-
import {debug} from '@jdeighan/coffee-utils/debug'
|
10
|
+
import {splitLine} from '@jdeighan/coffee-utils/indent'
|
12
11
|
import {
|
13
|
-
firstLine,
|
12
|
+
firstLine, toArray, toBlock,
|
14
13
|
} from '@jdeighan/coffee-utils/block'
|
14
|
+
import {slurp} from '@jdeighan/coffee-utils/fs'
|
15
15
|
|
16
16
|
# ---------------------------------------------------------------------------
|
17
17
|
# isTAML - is the string valid TAML?
|
@@ -20,24 +20,16 @@ export isTAML = (text) ->
|
|
20
20
|
|
21
21
|
return isString(text) && (firstLine(text).indexOf('---') == 0)
|
22
22
|
|
23
|
-
# ---------------------------------------------------------------------------
|
24
|
-
|
25
|
-
squote = (text) ->
|
26
|
-
|
27
|
-
return "'" + text.replace(/'/g, "''") + "'"
|
28
|
-
|
29
23
|
# ---------------------------------------------------------------------------
|
30
24
|
# taml - convert valid TAML string to a JavaScript value
|
31
25
|
|
32
|
-
export
|
26
|
+
export fromTAML = (text) ->
|
33
27
|
|
34
|
-
|
35
|
-
if ! text?
|
36
|
-
debug "return undef from taml() - text is not defined"
|
28
|
+
if notdefined(text)
|
37
29
|
return undef
|
38
|
-
assert isTAML(text), "
|
30
|
+
assert isTAML(text), "string #{OL(text)} isn't TAML"
|
39
31
|
|
40
|
-
lLines = for line in
|
32
|
+
lLines = for line in toArray(text)
|
41
33
|
[level, str] = splitLine(line)
|
42
34
|
prefix = ' '.repeat(level)
|
43
35
|
if lMatches = line.match(///^
|
@@ -55,12 +47,7 @@ export taml = (text) ->
|
|
55
47
|
else
|
56
48
|
prefix + str
|
57
49
|
|
58
|
-
|
59
|
-
return yaml.load(arrayToBlock(lLines), {skipInvalid: true})
|
60
|
-
|
61
|
-
# ---------------------------------------------------------------------------
|
62
|
-
|
63
|
-
export fromTAML = taml
|
50
|
+
return yaml.load(toBlock(lLines), {skipInvalid: true})
|
64
51
|
|
65
52
|
# ---------------------------------------------------------------------------
|
66
53
|
# --- a replacer is (key, value) -> newvalue
|
@@ -69,6 +56,8 @@ myReplacer = (name, value) ->
|
|
69
56
|
|
70
57
|
if isString(value)
|
71
58
|
return escapeStr(value)
|
59
|
+
else if isObject(value, ['tamlReplacer'])
|
60
|
+
return value.tamlReplacer()
|
72
61
|
else
|
73
62
|
return value
|
74
63
|
|
@@ -90,10 +79,16 @@ export toTAML = (obj, hOptions={}) ->
|
|
90
79
|
str = str.replace(/ /g, "\t")
|
91
80
|
return "---\n" + chomp(str)
|
92
81
|
|
82
|
+
# ---------------------------------------------------------------------------
|
83
|
+
|
84
|
+
squote = (text) ->
|
85
|
+
|
86
|
+
return "'" + text.replace(/'/g, "''") + "'"
|
87
|
+
|
93
88
|
# ---------------------------------------------------------------------------
|
94
89
|
# slurpTAML - read TAML from a file
|
95
90
|
|
96
91
|
export slurpTAML = (filepath) ->
|
97
92
|
|
98
93
|
contents = slurp(filepath)
|
99
|
-
return
|
94
|
+
return fromTAML(contents)
|
package/src/taml.js
CHANGED
@@ -6,64 +6,52 @@ import yaml from 'js-yaml';
|
|
6
6
|
|
7
7
|
import {
|
8
8
|
assert,
|
9
|
-
error,
|
10
9
|
croak
|
11
|
-
} from '@jdeighan/
|
10
|
+
} from '@jdeighan/exceptions';
|
12
11
|
|
13
12
|
import {
|
14
13
|
undef,
|
15
14
|
defined,
|
16
15
|
notdefined,
|
17
|
-
|
18
|
-
isString,
|
16
|
+
OL,
|
19
17
|
chomp,
|
20
|
-
escapeStr
|
18
|
+
escapeStr,
|
19
|
+
isString,
|
20
|
+
isObject,
|
21
|
+
isEmpty
|
21
22
|
} from '@jdeighan/coffee-utils';
|
22
23
|
|
23
24
|
import {
|
24
|
-
untabify,
|
25
|
-
tabify,
|
26
25
|
splitLine
|
27
26
|
} from '@jdeighan/coffee-utils/indent';
|
28
27
|
|
29
|
-
import {
|
30
|
-
slurp
|
31
|
-
} from '@jdeighan/coffee-utils/fs';
|
32
|
-
|
33
|
-
import {
|
34
|
-
debug
|
35
|
-
} from '@jdeighan/coffee-utils/debug';
|
36
|
-
|
37
28
|
import {
|
38
29
|
firstLine,
|
39
|
-
|
40
|
-
|
30
|
+
toArray,
|
31
|
+
toBlock
|
41
32
|
} from '@jdeighan/coffee-utils/block';
|
42
33
|
|
34
|
+
import {
|
35
|
+
slurp
|
36
|
+
} from '@jdeighan/coffee-utils/fs';
|
37
|
+
|
43
38
|
// ---------------------------------------------------------------------------
|
44
39
|
// isTAML - is the string valid TAML?
|
45
40
|
export var isTAML = function(text) {
|
46
41
|
return isString(text) && (firstLine(text).indexOf('---') === 0);
|
47
42
|
};
|
48
43
|
|
49
|
-
// ---------------------------------------------------------------------------
|
50
|
-
squote = function(text) {
|
51
|
-
return "'" + text.replace(/'/g, "''") + "'";
|
52
|
-
};
|
53
|
-
|
54
44
|
// ---------------------------------------------------------------------------
|
55
45
|
// taml - convert valid TAML string to a JavaScript value
|
56
|
-
export var
|
46
|
+
export var fromTAML = function(text) {
|
57
47
|
var _, key, lLines, lMatches, level, line, prefix, str;
|
58
|
-
|
59
|
-
if (text == null) {
|
60
|
-
debug("return undef from taml() - text is not defined");
|
48
|
+
if (notdefined(text)) {
|
61
49
|
return undef;
|
62
50
|
}
|
63
|
-
assert(isTAML(text), `
|
51
|
+
assert(isTAML(text), `string ${OL(text)} isn't TAML`);
|
64
52
|
lLines = (function() {
|
65
53
|
var i, len, ref, results;
|
66
|
-
ref =
|
54
|
+
ref = toArray(text);
|
67
55
|
results = [];
|
68
56
|
for (i = 0, len = ref.length; i < len; i++) {
|
69
57
|
line = ref[i];
|
@@ -82,20 +70,18 @@ export var taml = function(text) {
|
|
82
70
|
}
|
83
71
|
return results;
|
84
72
|
})();
|
85
|
-
|
86
|
-
return yaml.load(arrayToBlock(lLines), {
|
73
|
+
return yaml.load(toBlock(lLines), {
|
87
74
|
skipInvalid: true
|
88
75
|
});
|
89
76
|
};
|
90
77
|
|
91
|
-
// ---------------------------------------------------------------------------
|
92
|
-
export var fromTAML = taml;
|
93
|
-
|
94
78
|
// ---------------------------------------------------------------------------
|
95
79
|
// --- a replacer is (key, value) -> newvalue
|
96
80
|
myReplacer = function(name, value) {
|
97
81
|
if (isString(value)) {
|
98
82
|
return escapeStr(value);
|
83
|
+
} else if (isObject(value, ['tamlReplacer'])) {
|
84
|
+
return value.tamlReplacer();
|
99
85
|
} else {
|
100
86
|
return value;
|
101
87
|
}
|
@@ -121,10 +107,15 @@ export var toTAML = function(obj, hOptions = {}) {
|
|
121
107
|
return "---\n" + chomp(str);
|
122
108
|
};
|
123
109
|
|
110
|
+
// ---------------------------------------------------------------------------
|
111
|
+
squote = function(text) {
|
112
|
+
return "'" + text.replace(/'/g, "''") + "'";
|
113
|
+
};
|
114
|
+
|
124
115
|
// ---------------------------------------------------------------------------
|
125
116
|
// slurpTAML - read TAML from a file
|
126
117
|
export var slurpTAML = function(filepath) {
|
127
118
|
var contents;
|
128
119
|
contents = slurp(filepath);
|
129
|
-
return
|
120
|
+
return fromTAML(contents);
|
130
121
|
};
|
@@ -1,11 +1,10 @@
|
|
1
|
-
#
|
1
|
+
# utils.coffee
|
2
2
|
|
3
|
-
import {
|
3
|
+
import {LOG, assert, croak} from '@jdeighan/exceptions'
|
4
4
|
|
5
5
|
export sep_dash = '-'.repeat(42)
|
6
6
|
export sep_eq = '='.repeat(42)
|
7
7
|
`export const undef = undefined`
|
8
|
-
LOG = (lArgs...) -> console.log lArgs... # synonym for console.log()
|
9
8
|
|
10
9
|
# ---------------------------------------------------------------------------
|
11
10
|
# TEMP!!!!!
|
@@ -258,7 +257,7 @@ export nonEmpty = (x) ->
|
|
258
257
|
if isHash(x)
|
259
258
|
return Object.keys(x).length > 0
|
260
259
|
else
|
261
|
-
|
260
|
+
croak "isEmpty(): Invalid parameter"
|
262
261
|
|
263
262
|
# ---------------------------------------------------------------------------
|
264
263
|
|
@@ -1,12 +1,10 @@
|
|
1
1
|
// Generated by CoffeeScript 2.7.0
|
2
|
-
//
|
3
|
-
var LOG;
|
4
|
-
|
2
|
+
// utils.coffee
|
5
3
|
import {
|
4
|
+
LOG,
|
6
5
|
assert,
|
7
|
-
error,
|
8
6
|
croak
|
9
|
-
} from '@jdeighan/
|
7
|
+
} from '@jdeighan/exceptions';
|
10
8
|
|
11
9
|
export var sep_dash = '-'.repeat(42);
|
12
10
|
|
@@ -14,11 +12,6 @@ export var sep_eq = '='.repeat(42);
|
|
14
12
|
|
15
13
|
export const undef = undefined;
|
16
14
|
|
17
|
-
LOG = function(...lArgs) {
|
18
|
-
return console.log(...lArgs); // synonym for console.log()
|
19
|
-
};
|
20
|
-
|
21
|
-
|
22
15
|
// ---------------------------------------------------------------------------
|
23
16
|
// TEMP!!!!!
|
24
17
|
export var isComment = function(line) {
|
@@ -103,8 +96,8 @@ export var isConstructor = function(f) {
|
|
103
96
|
var err;
|
104
97
|
try {
|
105
98
|
new f();
|
106
|
-
} catch (
|
107
|
-
err =
|
99
|
+
} catch (error) {
|
100
|
+
err = error;
|
108
101
|
if (err.message.indexOf('is not a constructor') >= 0) {
|
109
102
|
return false;
|
110
103
|
}
|
@@ -280,7 +273,7 @@ export var nonEmpty = function(x) {
|
|
280
273
|
if (isHash(x)) {
|
281
274
|
return Object.keys(x).length > 0;
|
282
275
|
} else {
|
283
|
-
return
|
276
|
+
return croak("isEmpty(): Invalid parameter");
|
284
277
|
}
|
285
278
|
};
|
286
279
|
|
@@ -516,8 +509,8 @@ export var deepCopy = function(obj) {
|
|
516
509
|
objStr = JSON.stringify(obj);
|
517
510
|
try {
|
518
511
|
newObj = JSON.parse(objStr);
|
519
|
-
} catch (
|
520
|
-
err =
|
512
|
+
} catch (error) {
|
513
|
+
err = error;
|
521
514
|
croak("ERROR: err.message", objStr);
|
522
515
|
}
|
523
516
|
return newObj;
|