@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,17 +1,15 @@
|
|
1
|
-
#
|
1
|
+
# fs.coffee
|
2
2
|
|
3
3
|
import pathlib from 'path'
|
4
4
|
import urllib from 'url'
|
5
5
|
import fs from 'fs'
|
6
6
|
import NReadLines from 'n-readlines'
|
7
7
|
|
8
|
-
import {
|
8
|
+
import {LOG, assert, croak} from '@jdeighan/exceptions'
|
9
9
|
import {
|
10
10
|
undef, pass, defined, rtrim, isEmpty, nonEmpty,
|
11
11
|
isString, isArray, isHash, isRegExp, isFunction, OL,
|
12
12
|
} from '@jdeighan/coffee-utils'
|
13
|
-
import {log, LOG} from '@jdeighan/coffee-utils/log'
|
14
|
-
import {debug} from '@jdeighan/coffee-utils/debug'
|
15
13
|
import {arrayToBlock} from '@jdeighan/coffee-utils/block'
|
16
14
|
|
17
15
|
# ---------------------------------------------------------------------------
|
@@ -20,13 +18,9 @@ import {arrayToBlock} from '@jdeighan/coffee-utils/block'
|
|
20
18
|
|
21
19
|
export mydir = (url) ->
|
22
20
|
|
23
|
-
debug "url = #{url}"
|
24
21
|
path = urllib.fileURLToPath(url)
|
25
|
-
debug "path = #{path}"
|
26
22
|
dir = pathlib.dirname(path)
|
27
|
-
debug "dir = #{dir}"
|
28
23
|
final = mkpath(dir)
|
29
|
-
debug "final = #{final}"
|
30
24
|
return final
|
31
25
|
|
32
26
|
# ---------------------------------------------------------------------------
|
@@ -35,11 +29,8 @@ export mydir = (url) ->
|
|
35
29
|
|
36
30
|
export myfile = (url) ->
|
37
31
|
|
38
|
-
debug "url = #{url}"
|
39
32
|
path = urllib.fileURLToPath(url)
|
40
|
-
debug "path = #{path}"
|
41
33
|
filename = pathlib.parse(path).base
|
42
|
-
debug "filename = #{filename}"
|
43
34
|
return filename
|
44
35
|
|
45
36
|
# ---------------------------------------------------------------------------
|
@@ -48,9 +39,7 @@ export myfile = (url) ->
|
|
48
39
|
|
49
40
|
export myfullpath = (url) ->
|
50
41
|
|
51
|
-
debug "url = #{url}"
|
52
42
|
path = urllib.fileURLToPath(url)
|
53
|
-
debug "path = #{path}"
|
54
43
|
return mkpath(path)
|
55
44
|
|
56
45
|
# ---------------------------------------------------------------------------
|
@@ -140,7 +129,6 @@ export forEachLineInFile = (filepath, func) ->
|
|
140
129
|
|
141
130
|
export slurp = (filepath, maxLines=undef) ->
|
142
131
|
|
143
|
-
debug "enter slurp('#{filepath}')"
|
144
132
|
if maxLines?
|
145
133
|
lLines = []
|
146
134
|
forEachLineInFile filepath, (line, nLines) ->
|
@@ -150,7 +138,6 @@ export slurp = (filepath, maxLines=undef) ->
|
|
150
138
|
else
|
151
139
|
filepath = filepath.replace(/\//g, "\\")
|
152
140
|
contents = fs.readFileSync(filepath, 'utf8').toString()
|
153
|
-
debug "return from slurp()", contents
|
154
141
|
return contents
|
155
142
|
|
156
143
|
# ---------------------------------------------------------------------------
|
@@ -158,9 +145,7 @@ export slurp = (filepath, maxLines=undef) ->
|
|
158
145
|
|
159
146
|
export barf = (filepath, contents) ->
|
160
147
|
|
161
|
-
debug "enter barf('#{filepath}')", contents
|
162
148
|
if isEmpty(contents)
|
163
|
-
debug "return from barf(): empty contents"
|
164
149
|
return
|
165
150
|
if isArray(contents)
|
166
151
|
contents = arrayToBlock(contents)
|
@@ -168,7 +153,6 @@ export barf = (filepath, contents) ->
|
|
168
153
|
croak "barf(): Invalid contents"
|
169
154
|
contents = rtrim(contents) + "\n"
|
170
155
|
fs.writeFileSync(filepath, contents, {encoding: 'utf8'})
|
171
|
-
debug "return from barf()"
|
172
156
|
return
|
173
157
|
|
174
158
|
# ---------------------------------------------------------------------------
|
@@ -199,10 +183,10 @@ export removeFileWithExt = (path, newExt, hOptions={}) ->
|
|
199
183
|
try
|
200
184
|
fs.unlinkSync fullpath
|
201
185
|
if hOptions.doLog
|
202
|
-
|
186
|
+
LOG " unlink #{filename}"
|
203
187
|
success = true
|
204
188
|
catch err
|
205
|
-
|
189
|
+
LOG " UNLINK FAILED: #{err.message}"
|
206
190
|
success = false
|
207
191
|
return success
|
208
192
|
|
@@ -277,7 +261,6 @@ export pathTo = (fname, searchDir, hOptions={}) ->
|
|
277
261
|
if isEmpty(relative)
|
278
262
|
relative = false
|
279
263
|
|
280
|
-
debug "enter pathTo()", fname, searchDir, direction
|
281
264
|
if ! searchDir
|
282
265
|
searchDir = process.cwd()
|
283
266
|
assert fs.existsSync(searchDir), "Dir #{searchDir} does not exist"
|
@@ -285,7 +268,6 @@ export pathTo = (fname, searchDir, hOptions={}) ->
|
|
285
268
|
if fs.existsSync(filepath)
|
286
269
|
if relative
|
287
270
|
filepath = "./#{fname}"
|
288
|
-
debug "return from pathTo() - file exists", filepath
|
289
271
|
return filepath
|
290
272
|
|
291
273
|
if (direction == 'down')
|
@@ -293,31 +275,24 @@ export pathTo = (fname, searchDir, hOptions={}) ->
|
|
293
275
|
# getSubDirs() returns dirs sorted alphabetically
|
294
276
|
for subdir in getSubDirs(searchDir)
|
295
277
|
dirpath = mkpath(searchDir, subdir)
|
296
|
-
debug "check #{subdir}"
|
297
278
|
if defined(fpath = pathTo(fname, dirpath, hOptions))
|
298
279
|
if relative
|
299
280
|
fpath = fpath.replace('./', "./#{subdir}/")
|
300
|
-
debug "return from pathTo()", fpath
|
301
281
|
return fpath
|
302
282
|
else if (direction == 'up')
|
303
283
|
nLevels = 0
|
304
284
|
while defined(dirPath = getParentDir(searchDir))
|
305
285
|
nLevels += 1
|
306
|
-
debug "check #{dirPath}"
|
307
286
|
fpath = mkpath(dirPath, fname)
|
308
|
-
debug "check for #{fpath}"
|
309
287
|
if fs.existsSync(fpath)
|
310
288
|
if relative
|
311
289
|
fpath = "../".repeat(nLevels) + fname
|
312
|
-
debug "return from pathTo()", fpath
|
313
290
|
return fpath
|
314
291
|
else
|
315
|
-
debug "return from pathTo()", fpath
|
316
292
|
return fpath
|
317
293
|
searchDir = dirPath
|
318
294
|
else
|
319
|
-
|
320
|
-
debug "return undef from pathTo - file not found"
|
295
|
+
croak "pathTo(): Invalid direction '#{direction}'"
|
321
296
|
return undef
|
322
297
|
|
323
298
|
# ---------------------------------------------------------------------------
|
@@ -342,21 +317,13 @@ export allPathsTo = (fname, searchDir) ->
|
|
342
317
|
|
343
318
|
export newerDestFileExists = (srcPath, destPath) ->
|
344
319
|
|
345
|
-
debug "enter newerDestFileExists()"
|
346
320
|
if ! fs.existsSync(destPath)
|
347
|
-
debug "return false from newerDestFileExists() - no file"
|
348
321
|
return false
|
349
322
|
srcModTime = fs.statSync(srcPath).mtimeMs
|
350
323
|
destModTime = fs.statSync(destPath).mtimeMs
|
351
|
-
debug "srcModTime = #{srcModTime}"
|
352
|
-
debug "destModTime = #{destModTime}"
|
353
324
|
if destModTime >= srcModTime
|
354
|
-
debug "#{destPath} is up to date"
|
355
|
-
debug "return true from newerDestFileExists()"
|
356
325
|
return true
|
357
326
|
else
|
358
|
-
debug "#{destPath} is old"
|
359
|
-
debug "return false from newerDestFileExists()"
|
360
327
|
return false
|
361
328
|
|
362
329
|
# ---------------------------------------------------------------------------
|
@@ -386,7 +353,6 @@ export parseSource = (source) ->
|
|
386
353
|
# }
|
387
354
|
# --- NOTE: source may be a file URL, e.g. import.meta.url
|
388
355
|
|
389
|
-
debug "enter parseSource()"
|
390
356
|
assert isString(source),\
|
391
357
|
"parseSource(): source not a string: #{OL(source)}"
|
392
358
|
if source == 'unit test'
|
@@ -423,7 +389,6 @@ export parseSource = (source) ->
|
|
423
389
|
([A-Za-z_]+)
|
424
390
|
$///)
|
425
391
|
hSourceInfo.purpose = lMatches[1]
|
426
|
-
debug "return from parseSource()", hSourceInfo
|
427
392
|
return hSourceInfo
|
428
393
|
|
429
394
|
# ---------------------------------------------------------------------------
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Generated by CoffeeScript 2.7.0
|
2
|
-
//
|
2
|
+
// fs.coffee
|
3
3
|
var isSystemDir;
|
4
4
|
|
5
5
|
import pathlib from 'path';
|
@@ -11,10 +11,10 @@ import fs from 'fs';
|
|
11
11
|
import NReadLines from 'n-readlines';
|
12
12
|
|
13
13
|
import {
|
14
|
+
LOG,
|
14
15
|
assert,
|
15
|
-
error,
|
16
16
|
croak
|
17
|
-
} from '@jdeighan/
|
17
|
+
} from '@jdeighan/exceptions';
|
18
18
|
|
19
19
|
import {
|
20
20
|
undef,
|
@@ -31,15 +31,6 @@ import {
|
|
31
31
|
OL
|
32
32
|
} from '@jdeighan/coffee-utils';
|
33
33
|
|
34
|
-
import {
|
35
|
-
log,
|
36
|
-
LOG
|
37
|
-
} from '@jdeighan/coffee-utils/log';
|
38
|
-
|
39
|
-
import {
|
40
|
-
debug
|
41
|
-
} from '@jdeighan/coffee-utils/debug';
|
42
|
-
|
43
34
|
import {
|
44
35
|
arrayToBlock
|
45
36
|
} from '@jdeighan/coffee-utils/block';
|
@@ -49,13 +40,9 @@ import {
|
|
49
40
|
// the directory your file is in
|
50
41
|
export var mydir = function(url) {
|
51
42
|
var dir, final, path;
|
52
|
-
debug(`url = ${url}`);
|
53
43
|
path = urllib.fileURLToPath(url);
|
54
|
-
debug(`path = ${path}`);
|
55
44
|
dir = pathlib.dirname(path);
|
56
|
-
debug(`dir = ${dir}`);
|
57
45
|
final = mkpath(dir);
|
58
|
-
debug(`final = ${final}`);
|
59
46
|
return final;
|
60
47
|
};
|
61
48
|
|
@@ -64,11 +51,8 @@ export var mydir = function(url) {
|
|
64
51
|
// the name of your file
|
65
52
|
export var myfile = function(url) {
|
66
53
|
var filename, path;
|
67
|
-
debug(`url = ${url}`);
|
68
54
|
path = urllib.fileURLToPath(url);
|
69
|
-
debug(`path = ${path}`);
|
70
55
|
filename = pathlib.parse(path).base;
|
71
|
-
debug(`filename = ${filename}`);
|
72
56
|
return filename;
|
73
57
|
};
|
74
58
|
|
@@ -77,9 +61,7 @@ export var myfile = function(url) {
|
|
77
61
|
// the full path to your file
|
78
62
|
export var myfullpath = function(url) {
|
79
63
|
var path;
|
80
|
-
debug(`url = ${url}`);
|
81
64
|
path = urllib.fileURLToPath(url);
|
82
|
-
debug(`path = ${path}`);
|
83
65
|
return mkpath(path);
|
84
66
|
};
|
85
67
|
|
@@ -97,7 +79,7 @@ export var isDir = function(fullpath) {
|
|
97
79
|
return false;
|
98
80
|
}
|
99
81
|
return obj.isDirectory();
|
100
|
-
} catch (
|
82
|
+
} catch (error) {
|
101
83
|
return false;
|
102
84
|
}
|
103
85
|
};
|
@@ -175,7 +157,6 @@ export var forEachLineInFile = function(filepath, func) {
|
|
175
157
|
// slurp - read an entire file into a string
|
176
158
|
export var slurp = function(filepath, maxLines = undef) {
|
177
159
|
var contents, lLines;
|
178
|
-
debug(`enter slurp('${filepath}')`);
|
179
160
|
if (maxLines != null) {
|
180
161
|
lLines = [];
|
181
162
|
forEachLineInFile(filepath, function(line, nLines) {
|
@@ -191,16 +172,13 @@ export var slurp = function(filepath, maxLines = undef) {
|
|
191
172
|
filepath = filepath.replace(/\//g, "\\");
|
192
173
|
contents = fs.readFileSync(filepath, 'utf8').toString();
|
193
174
|
}
|
194
|
-
debug("return from slurp()", contents);
|
195
175
|
return contents;
|
196
176
|
};
|
197
177
|
|
198
178
|
// ---------------------------------------------------------------------------
|
199
179
|
// barf - write a string to a file
|
200
180
|
export var barf = function(filepath, contents) {
|
201
|
-
debug(`enter barf('${filepath}')`, contents);
|
202
181
|
if (isEmpty(contents)) {
|
203
|
-
debug("return from barf(): empty contents");
|
204
182
|
return;
|
205
183
|
}
|
206
184
|
if (isArray(contents)) {
|
@@ -212,7 +190,6 @@ export var barf = function(filepath, contents) {
|
|
212
190
|
fs.writeFileSync(filepath, contents, {
|
213
191
|
encoding: 'utf8'
|
214
192
|
});
|
215
|
-
debug("return from barf()");
|
216
193
|
};
|
217
194
|
|
218
195
|
// ---------------------------------------------------------------------------
|
@@ -243,12 +220,12 @@ export var removeFileWithExt = function(path, newExt, hOptions = {}) {
|
|
243
220
|
try {
|
244
221
|
fs.unlinkSync(fullpath);
|
245
222
|
if (hOptions.doLog) {
|
246
|
-
|
223
|
+
LOG(` unlink ${filename}`);
|
247
224
|
}
|
248
225
|
success = true;
|
249
|
-
} catch (
|
250
|
-
err =
|
251
|
-
|
226
|
+
} catch (error) {
|
227
|
+
err = error;
|
228
|
+
LOG(` UNLINK FAILED: ${err.message}`);
|
252
229
|
success = false;
|
253
230
|
}
|
254
231
|
return success;
|
@@ -339,7 +316,6 @@ export var pathTo = function(fname, searchDir, hOptions = {}) {
|
|
339
316
|
if (isEmpty(relative)) {
|
340
317
|
relative = false;
|
341
318
|
}
|
342
|
-
debug("enter pathTo()", fname, searchDir, direction);
|
343
319
|
if (!searchDir) {
|
344
320
|
searchDir = process.cwd();
|
345
321
|
}
|
@@ -349,7 +325,6 @@ export var pathTo = function(fname, searchDir, hOptions = {}) {
|
|
349
325
|
if (relative) {
|
350
326
|
filepath = `./${fname}`;
|
351
327
|
}
|
352
|
-
debug("return from pathTo() - file exists", filepath);
|
353
328
|
return filepath;
|
354
329
|
}
|
355
330
|
if (direction === 'down') {
|
@@ -359,12 +334,10 @@ export var pathTo = function(fname, searchDir, hOptions = {}) {
|
|
359
334
|
for (i = 0, len = ref.length; i < len; i++) {
|
360
335
|
subdir = ref[i];
|
361
336
|
dirpath = mkpath(searchDir, subdir);
|
362
|
-
debug(`check ${subdir}`);
|
363
337
|
if (defined(fpath = pathTo(fname, dirpath, hOptions))) {
|
364
338
|
if (relative) {
|
365
339
|
fpath = fpath.replace('./', `./${subdir}/`);
|
366
340
|
}
|
367
|
-
debug("return from pathTo()", fpath);
|
368
341
|
return fpath;
|
369
342
|
}
|
370
343
|
}
|
@@ -372,25 +345,20 @@ export var pathTo = function(fname, searchDir, hOptions = {}) {
|
|
372
345
|
nLevels = 0;
|
373
346
|
while (defined(dirPath = getParentDir(searchDir))) {
|
374
347
|
nLevels += 1;
|
375
|
-
debug(`check ${dirPath}`);
|
376
348
|
fpath = mkpath(dirPath, fname);
|
377
|
-
debug(`check for ${fpath}`);
|
378
349
|
if (fs.existsSync(fpath)) {
|
379
350
|
if (relative) {
|
380
351
|
fpath = "../".repeat(nLevels) + fname;
|
381
|
-
debug("return from pathTo()", fpath);
|
382
352
|
return fpath;
|
383
353
|
} else {
|
384
|
-
debug("return from pathTo()", fpath);
|
385
354
|
return fpath;
|
386
355
|
}
|
387
356
|
}
|
388
357
|
searchDir = dirPath;
|
389
358
|
}
|
390
359
|
} else {
|
391
|
-
|
360
|
+
croak(`pathTo(): Invalid direction '${direction}'`);
|
392
361
|
}
|
393
|
-
debug("return undef from pathTo - file not found");
|
394
362
|
return undef;
|
395
363
|
};
|
396
364
|
|
@@ -420,22 +388,14 @@ export var allPathsTo = function(fname, searchDir) {
|
|
420
388
|
// ---------------------------------------------------------------------------
|
421
389
|
export var newerDestFileExists = function(srcPath, destPath) {
|
422
390
|
var destModTime, srcModTime;
|
423
|
-
debug("enter newerDestFileExists()");
|
424
391
|
if (!fs.existsSync(destPath)) {
|
425
|
-
debug("return false from newerDestFileExists() - no file");
|
426
392
|
return false;
|
427
393
|
}
|
428
394
|
srcModTime = fs.statSync(srcPath).mtimeMs;
|
429
395
|
destModTime = fs.statSync(destPath).mtimeMs;
|
430
|
-
debug(`srcModTime = ${srcModTime}`);
|
431
|
-
debug(`destModTime = ${destModTime}`);
|
432
396
|
if (destModTime >= srcModTime) {
|
433
|
-
debug(`${destPath} is up to date`);
|
434
|
-
debug("return true from newerDestFileExists()");
|
435
397
|
return true;
|
436
398
|
} else {
|
437
|
-
debug(`${destPath} is old`);
|
438
|
-
debug("return false from newerDestFileExists()");
|
439
399
|
return false;
|
440
400
|
}
|
441
401
|
};
|
@@ -465,7 +425,6 @@ export var parseSource = function(source) {
|
|
465
425
|
// purpose
|
466
426
|
// }
|
467
427
|
// --- NOTE: source may be a file URL, e.g. import.meta.url
|
468
|
-
debug("enter parseSource()");
|
469
428
|
assert(isString(source), `parseSource(): source not a string: ${OL(source)}`);
|
470
429
|
if (source === 'unit test') {
|
471
430
|
croak("A source of 'unit test' is deprecated");
|
@@ -501,7 +460,6 @@ export var parseSource = function(source) {
|
|
501
460
|
hSourceInfo.purpose = lMatches[1];
|
502
461
|
}
|
503
462
|
}
|
504
|
-
debug("return from parseSource()", hSourceInfo);
|
505
463
|
return hSourceInfo;
|
506
464
|
};
|
507
465
|
|
package/src/fsa.coffee
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
# fsa.coffee
|
2
2
|
|
3
|
-
import {assert, croak} from '@jdeighan/
|
3
|
+
import {LOG, assert, croak} from '@jdeighan/exceptions'
|
4
4
|
import {
|
5
5
|
undef, defined, notdefined, words, isEmpty, nonEmpty,
|
6
6
|
isString, OL,
|
7
7
|
} from '@jdeighan/coffee-utils'
|
8
8
|
import {toArray} from '@jdeighan/coffee-utils/block'
|
9
|
-
import {LOG} from '@jdeighan/coffee-utils/log'
|
10
9
|
import {debug} from '@jdeighan/coffee-utils/debug'
|
11
10
|
|
12
11
|
# ---------------------------------------------------------------------------
|
package/src/fsa.js
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
// Generated by CoffeeScript 2.7.0
|
2
2
|
// fsa.coffee
|
3
3
|
import {
|
4
|
+
LOG,
|
4
5
|
assert,
|
5
6
|
croak
|
6
|
-
} from '@jdeighan/
|
7
|
+
} from '@jdeighan/exceptions';
|
7
8
|
|
8
9
|
import {
|
9
10
|
undef,
|
@@ -20,10 +21,6 @@ import {
|
|
20
21
|
toArray
|
21
22
|
} from '@jdeighan/coffee-utils/block';
|
22
23
|
|
23
|
-
import {
|
24
|
-
LOG
|
25
|
-
} from '@jdeighan/coffee-utils/log';
|
26
|
-
|
27
24
|
import {
|
28
25
|
debug
|
29
26
|
} from '@jdeighan/coffee-utils/debug';
|
@@ -1,12 +1,11 @@
|
|
1
|
-
#
|
1
|
+
# html.coffee
|
2
2
|
|
3
|
-
import {assert, croak} from '@jdeighan/
|
3
|
+
import {assert, croak} from '@jdeighan/exceptions'
|
4
4
|
import {
|
5
5
|
undef, pass, words, isEmpty, nonEmpty,
|
6
6
|
} from '@jdeighan/coffee-utils'
|
7
|
-
import {indented
|
8
|
-
import {
|
9
|
-
import {debug} from '@jdeighan/coffee-utils/debug'
|
7
|
+
import {indented} from '@jdeighan/coffee-utils/indent'
|
8
|
+
import {toBlock} from '@jdeighan/coffee-utils/block'
|
10
9
|
|
11
10
|
hNoEnd = {}
|
12
11
|
for tagName in words('area base br col command embed hr img input' \
|
@@ -210,7 +209,7 @@ export elem = (tagName, hAttr=undef, text=undef, oneIndent="\t") ->
|
|
210
209
|
hAttr
|
211
210
|
text
|
212
211
|
}
|
213
|
-
return
|
212
|
+
return toBlock([
|
214
213
|
tag2str(hToken, 'begin')
|
215
214
|
indented(text, 1, oneIndent)
|
216
215
|
tag2str(hToken, 'end')
|
@@ -1,11 +1,11 @@
|
|
1
1
|
// Generated by CoffeeScript 2.7.0
|
2
|
-
//
|
2
|
+
// html.coffee
|
3
3
|
var hNoEnd, i, len, ref, tagName;
|
4
4
|
|
5
5
|
import {
|
6
6
|
assert,
|
7
7
|
croak
|
8
|
-
} from '@jdeighan/
|
8
|
+
} from '@jdeighan/exceptions';
|
9
9
|
|
10
10
|
import {
|
11
11
|
undef,
|
@@ -16,18 +16,13 @@ import {
|
|
16
16
|
} from '@jdeighan/coffee-utils';
|
17
17
|
|
18
18
|
import {
|
19
|
-
indented
|
20
|
-
enclose
|
19
|
+
indented
|
21
20
|
} from '@jdeighan/coffee-utils/indent';
|
22
21
|
|
23
22
|
import {
|
24
|
-
|
23
|
+
toBlock
|
25
24
|
} from '@jdeighan/coffee-utils/block';
|
26
25
|
|
27
|
-
import {
|
28
|
-
debug
|
29
|
-
} from '@jdeighan/coffee-utils/debug';
|
30
|
-
|
31
26
|
hNoEnd = {};
|
32
27
|
|
33
28
|
ref = words('area base br col command embed hr img input' + ' keygen link meta param source track wbr');
|
@@ -218,5 +213,5 @@ export var elem = function(tagName, hAttr = undef, text = undef, oneIndent = "\t
|
|
218
213
|
return undef;
|
219
214
|
}
|
220
215
|
hToken = {tagName, hAttr, text};
|
221
|
-
return
|
216
|
+
return toBlock([tag2str(hToken, 'begin'), indented(text, 1, oneIndent), tag2str(hToken, 'end')]);
|
222
217
|
};
|
@@ -1,13 +1,11 @@
|
|
1
|
-
#
|
1
|
+
# indent.coffee
|
2
2
|
|
3
|
-
import {assert,
|
3
|
+
import {assert, croak} from '@jdeighan/exceptions'
|
4
4
|
import {
|
5
|
-
undef,
|
5
|
+
undef, defined, notdefined,
|
6
6
|
OL, isInteger, isString, isArray, isEmpty, rtrim,
|
7
7
|
} from '@jdeighan/coffee-utils'
|
8
|
-
import {
|
9
|
-
arrayToBlock, blockToArray, toArray, toBlock,
|
10
|
-
} from '@jdeighan/coffee-utils/block'
|
8
|
+
import {toArray, toBlock} from '@jdeighan/coffee-utils/block'
|
11
9
|
|
12
10
|
# ---------------------------------------------------------------------------
|
13
11
|
|
@@ -143,7 +141,7 @@ export undented = (input, level=undef, oneIndent="\t") ->
|
|
143
141
|
export tabify = (str, numSpaces=undef) ->
|
144
142
|
|
145
143
|
lLines = []
|
146
|
-
for str in
|
144
|
+
for str in toArray(str)
|
147
145
|
[_, prefix, theRest] = str.match(/^(\s*)(.*)$/)
|
148
146
|
prefixLen = prefix.length
|
149
147
|
if prefixLen == 0
|
@@ -155,7 +153,7 @@ export tabify = (str, numSpaces=undef) ->
|
|
155
153
|
assert (prefixLen % numSpaces == 0), "Bad prefix"
|
156
154
|
level = prefixLen / numSpaces
|
157
155
|
lLines.push '\t'.repeat(level) + theRest
|
158
|
-
result =
|
156
|
+
result = toBlock(lLines)
|
159
157
|
return result
|
160
158
|
|
161
159
|
# ---------------------------------------------------------------------------
|
@@ -170,7 +168,7 @@ export untabify = (str, numSpaces=3) ->
|
|
170
168
|
|
171
169
|
export enclose = (text, pre, post, oneIndent="\t") ->
|
172
170
|
|
173
|
-
return
|
171
|
+
return toBlock([
|
174
172
|
pre
|
175
173
|
indented(text, 1, oneIndent)
|
176
174
|
post
|
@@ -1,14 +1,14 @@
|
|
1
1
|
// Generated by CoffeeScript 2.7.0
|
2
|
-
//
|
2
|
+
// indent.coffee
|
3
3
|
import {
|
4
4
|
assert,
|
5
|
-
|
6
|
-
} from '@jdeighan/
|
5
|
+
croak
|
6
|
+
} from '@jdeighan/exceptions';
|
7
7
|
|
8
8
|
import {
|
9
9
|
undef,
|
10
|
-
escapeStr,
|
11
10
|
defined,
|
11
|
+
notdefined,
|
12
12
|
OL,
|
13
13
|
isInteger,
|
14
14
|
isString,
|
@@ -18,8 +18,6 @@ import {
|
|
18
18
|
} from '@jdeighan/coffee-utils';
|
19
19
|
|
20
20
|
import {
|
21
|
-
arrayToBlock,
|
22
|
-
blockToArray,
|
23
21
|
toArray,
|
24
22
|
toBlock
|
25
23
|
} from '@jdeighan/coffee-utils/block';
|
@@ -169,7 +167,7 @@ export var undented = function(input, level = undef, oneIndent = "\t") {
|
|
169
167
|
export var tabify = function(str, numSpaces = undef) {
|
170
168
|
var _, i, lLines, len1, level, prefix, prefixLen, ref, result, theRest;
|
171
169
|
lLines = [];
|
172
|
-
ref =
|
170
|
+
ref = toArray(str);
|
173
171
|
for (i = 0, len1 = ref.length; i < len1; i++) {
|
174
172
|
str = ref[i];
|
175
173
|
[_, prefix, theRest] = str.match(/^(\s*)(.*)$/);
|
@@ -186,7 +184,7 @@ export var tabify = function(str, numSpaces = undef) {
|
|
186
184
|
lLines.push('\t'.repeat(level) + theRest);
|
187
185
|
}
|
188
186
|
}
|
189
|
-
result =
|
187
|
+
result = toBlock(lLines);
|
190
188
|
return result;
|
191
189
|
};
|
192
190
|
|
@@ -199,5 +197,5 @@ export var untabify = function(str, numSpaces = 3) {
|
|
199
197
|
// ---------------------------------------------------------------------------
|
200
198
|
// enclose - indent text, surround with pre and post
|
201
199
|
export var enclose = function(text, pre, post, oneIndent = "\t") {
|
202
|
-
return
|
200
|
+
return toBlock([pre, indented(text, 1, oneIndent), post]);
|
203
201
|
};
|
@@ -1,14 +1,11 @@
|
|
1
|
-
#
|
1
|
+
# log.coffee
|
2
2
|
|
3
|
-
import {
|
3
|
+
import {LOG, assert, croak} from '@jdeighan/exceptions'
|
4
4
|
import {
|
5
5
|
undef, isNumber, isInteger, isString, isHash, isFunction,
|
6
6
|
escapeStr, sep_eq, sep_dash, pass, OL,
|
7
7
|
} from '@jdeighan/coffee-utils'
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
tabify, untabify, indentation, indented,
|
11
|
-
} from '@jdeighan/coffee-utils/indent'
|
8
|
+
import {toArray} from '@jdeighan/coffee-utils/block'
|
12
9
|
import {toTAML} from '@jdeighan/coffee-utils/taml'
|
13
10
|
|
14
11
|
# --- This logger only ever gets passed a single string argument
|
@@ -27,42 +24,6 @@ export debugLog = (flag=true) ->
|
|
27
24
|
LOG "doDebugLog = #{flag}"
|
28
25
|
return
|
29
26
|
|
30
|
-
# ---------------------------------------------------------------------------
|
31
|
-
# This is useful for debugging
|
32
|
-
|
33
|
-
export LOG = (lArgs...) ->
|
34
|
-
|
35
|
-
[label, item] = lArgs
|
36
|
-
if lArgs.length > 1
|
37
|
-
# --- There's both a label and an item
|
38
|
-
if (item == undef)
|
39
|
-
console.log "#{label} = undef"
|
40
|
-
else if (item == null)
|
41
|
-
console.log "#{label} = null"
|
42
|
-
else
|
43
|
-
console.log sep_dash
|
44
|
-
console.log "#{label}:"
|
45
|
-
if isString(item)
|
46
|
-
console.log untabify(item)
|
47
|
-
else
|
48
|
-
console.log untabify(orderedStringify(item))
|
49
|
-
console.log sep_dash
|
50
|
-
else
|
51
|
-
console.log label
|
52
|
-
return true # to allow use in boolean expressions
|
53
|
-
|
54
|
-
# --- Use this instead to make it easier to remove all instances
|
55
|
-
export DEBUG = LOG # synonym
|
56
|
-
|
57
|
-
# ---------------------------------------------------------------------------
|
58
|
-
|
59
|
-
export LOGLINES = (label, lLines) ->
|
60
|
-
|
61
|
-
LOG "#{label}:"
|
62
|
-
for line in lLines
|
63
|
-
LOG "#{OL(line)}"
|
64
|
-
return
|
65
|
-
|
66
27
|
# ---------------------------------------------------------------------------
|
67
28
|
|
68
29
|
export setStringifier = (func) ->
|
@@ -185,7 +146,7 @@ export logItem = (label, item, pre='', itemPre=undef) ->
|
|
185
146
|
putstr "#{pre}#{label}:"
|
186
147
|
|
187
148
|
# --- escape special chars
|
188
|
-
for str in
|
149
|
+
for str in toArray(stringify(item, true))
|
189
150
|
putstr "#{itemPre}#{str}"
|
190
151
|
|
191
152
|
return true
|
@@ -212,7 +173,7 @@ fixForTerminal = (str) ->
|
|
212
173
|
putBlock = (item, prefix='') ->
|
213
174
|
|
214
175
|
putstr "#{prefix}#{sep_eq}"
|
215
|
-
for line in
|
176
|
+
for line in toArray(item)
|
216
177
|
putstr "#{prefix}#{escapeStr(line)}"
|
217
178
|
putstr "#{prefix}#{sep_eq}"
|
218
179
|
return
|