@jdeighan/coffee-utils 7.0.1 → 7.0.4
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/debug_utils.coffee +4 -1
- package/src/fs_utils.coffee +14 -9
- package/src/fs_utils.js +15 -10
- package/src/indent_utils.coffee +1 -17
- package/src/indent_utils.js +2 -24
- package/src/log_utils.coffee +7 -9
- package/src/log_utils.js +8 -9
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@jdeighan/coffee-utils",
|
3
3
|
"type": "module",
|
4
|
-
"version": "7.0.
|
4
|
+
"version": "7.0.4",
|
5
5
|
"description": "A set of utility functions for CoffeeScript",
|
6
6
|
"main": "coffee_utils.js",
|
7
7
|
"exports": {
|
@@ -49,7 +49,7 @@
|
|
49
49
|
"js-yaml": "^4.1.0",
|
50
50
|
"n-readlines": "^1.0.1",
|
51
51
|
"readline-sync": "^1.4.10",
|
52
|
-
"svelte": "^3.46.
|
52
|
+
"svelte": "^3.46.6"
|
53
53
|
},
|
54
54
|
"devDependencies": {
|
55
55
|
"@jdeighan/unit-tester": "^1.0.5"
|
package/src/debug_utils.coffee
CHANGED
@@ -168,7 +168,10 @@ export debug = (lArgs...) ->
|
|
168
168
|
# when debugging is off
|
169
169
|
|
170
170
|
[mainPre, auxPre, hEnv, type] = adjustStack(label)
|
171
|
-
hOptions = {
|
171
|
+
hOptions = {
|
172
|
+
prefix: mainPre
|
173
|
+
itemPrefix: auxPre
|
174
|
+
}
|
172
175
|
switch type
|
173
176
|
when 'enter'
|
174
177
|
log label, hOptions
|
package/src/fs_utils.coffee
CHANGED
@@ -239,21 +239,26 @@ export pathTo = (fname, dir, direction="down") ->
|
|
239
239
|
|
240
240
|
debug "enter pathTo('#{fname}','#{dir}','#{direction}')"
|
241
241
|
assert fs.existsSync(dir), "Directory #{dir} does not exist"
|
242
|
-
|
243
|
-
|
244
|
-
return
|
242
|
+
filepath = mkpath(dir, fname)
|
243
|
+
if fs.existsSync(filepath)
|
244
|
+
debug "return from pathTo: #{filepath} - file exists"
|
245
|
+
return filepath
|
245
246
|
else if (direction == 'down')
|
246
247
|
# --- Search all directories in this directory
|
248
|
+
# getSubDirs() returns dirs sorted alphabetically
|
247
249
|
for subdir in getSubDirs(dir)
|
248
|
-
|
250
|
+
dirpath = mkpath(dir, subdir)
|
251
|
+
debug "check #{dirpath}"
|
252
|
+
if fpath = pathTo(fname, dirpath)
|
249
253
|
debug "return from pathTo: #{fpath}"
|
250
254
|
return fpath
|
251
255
|
else if (direction == 'up')
|
252
|
-
while
|
253
|
-
debug "check #{
|
254
|
-
|
255
|
-
|
256
|
-
return
|
256
|
+
while dirpath = getParentDir(dir)
|
257
|
+
debug "check #{dirpath}"
|
258
|
+
filepath = mkpath(dirpath, fname)
|
259
|
+
if fs.existsSync(filepath)
|
260
|
+
debug "return from pathTo(): #{filepath}"
|
261
|
+
return filepath
|
257
262
|
else
|
258
263
|
error "pathTo(): Invalid direction '#{direction}'"
|
259
264
|
debug "return undef from pathTo - file not found"
|
package/src/fs_utils.js
CHANGED
@@ -281,28 +281,33 @@ export var forEachFile = function(dir, cb, filt = undef, level = 0) {
|
|
281
281
|
|
282
282
|
// ---------------------------------------------------------------------------
|
283
283
|
export var pathTo = function(fname, dir, direction = "down") {
|
284
|
-
var fpath, i, len, ref, subdir;
|
284
|
+
var dirpath, filepath, fpath, i, len, ref, subdir;
|
285
285
|
debug(`enter pathTo('${fname}','${dir}','${direction}')`);
|
286
286
|
assert(fs.existsSync(dir), `Directory ${dir} does not exist`);
|
287
|
-
|
288
|
-
|
289
|
-
return
|
287
|
+
filepath = mkpath(dir, fname);
|
288
|
+
if (fs.existsSync(filepath)) {
|
289
|
+
debug(`return from pathTo: ${filepath} - file exists`);
|
290
|
+
return filepath;
|
290
291
|
} else if (direction === 'down') {
|
291
292
|
ref = getSubDirs(dir);
|
292
293
|
// --- Search all directories in this directory
|
294
|
+
// getSubDirs() returns dirs sorted alphabetically
|
293
295
|
for (i = 0, len = ref.length; i < len; i++) {
|
294
296
|
subdir = ref[i];
|
295
|
-
|
297
|
+
dirpath = mkpath(dir, subdir);
|
298
|
+
debug(`check ${dirpath}`);
|
299
|
+
if (fpath = pathTo(fname, dirpath)) {
|
296
300
|
debug(`return from pathTo: ${fpath}`);
|
297
301
|
return fpath;
|
298
302
|
}
|
299
303
|
}
|
300
304
|
} else if (direction === 'up') {
|
301
|
-
while (
|
302
|
-
debug(`check ${
|
303
|
-
|
304
|
-
|
305
|
-
return
|
305
|
+
while (dirpath = getParentDir(dir)) {
|
306
|
+
debug(`check ${dirpath}`);
|
307
|
+
filepath = mkpath(dirpath, fname);
|
308
|
+
if (fs.existsSync(filepath)) {
|
309
|
+
debug(`return from pathTo(): ${filepath}`);
|
310
|
+
return filepath;
|
306
311
|
}
|
307
312
|
}
|
308
313
|
} else {
|
package/src/indent_utils.coffee
CHANGED
@@ -41,7 +41,7 @@ export indentLevel = (str) ->
|
|
41
41
|
# ---------------------------------------------------------------------------
|
42
42
|
# indented - add indentation to each string in a block
|
43
43
|
|
44
|
-
export indented = (input, level=
|
44
|
+
export indented = (input, level=1) ->
|
45
45
|
|
46
46
|
assert (level >= 0), "indented(): negative level"
|
47
47
|
if level == 0
|
@@ -130,22 +130,6 @@ export tabify = (str, numSpaces=undef) ->
|
|
130
130
|
lLines.push '\t'.repeat(prefixLen) + theRest
|
131
131
|
return arrayToBlock(lLines)
|
132
132
|
|
133
|
-
# ---------------------------------------------------------------------------
|
134
|
-
# untabify - convert leading TABs to spaces
|
135
|
-
|
136
|
-
untabify_old = (str, numSpaces=3) ->
|
137
|
-
|
138
|
-
oneIndent = ' '.repeat(numSpaces)
|
139
|
-
lLines = []
|
140
|
-
for str in blockToArray(str)
|
141
|
-
lMatches = str.match(/^(\t*)(.*)$/)
|
142
|
-
[_, prefix, theRest] = lMatches
|
143
|
-
if prefix == ''
|
144
|
-
lLines.push theRest
|
145
|
-
else
|
146
|
-
lLines.push oneIndent.repeat(prefix.length) + theRest
|
147
|
-
return arrayToBlock(lLines)
|
148
|
-
|
149
133
|
# ---------------------------------------------------------------------------
|
150
134
|
# untabify - convert ALL TABs to spaces
|
151
135
|
|
package/src/indent_utils.js
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
// Generated by CoffeeScript 2.6.1
|
2
|
-
// indent_utils.coffee
|
3
|
-
var untabify_old;
|
4
|
-
|
2
|
+
// indent_utils.coffee
|
5
3
|
import {
|
6
4
|
assert,
|
7
5
|
undef,
|
@@ -53,7 +51,7 @@ export var indentLevel = function(str) {
|
|
53
51
|
|
54
52
|
// ---------------------------------------------------------------------------
|
55
53
|
// indented - add indentation to each string in a block
|
56
|
-
export var indented = function(input, level =
|
54
|
+
export var indented = function(input, level = 1) {
|
57
55
|
var lInputLines, lLines, line, toAdd;
|
58
56
|
assert(level >= 0, "indented(): negative level");
|
59
57
|
if (level === 0) {
|
@@ -162,26 +160,6 @@ export var tabify = function(str, numSpaces = undef) {
|
|
162
160
|
return arrayToBlock(lLines);
|
163
161
|
};
|
164
162
|
|
165
|
-
// ---------------------------------------------------------------------------
|
166
|
-
// untabify - convert leading TABs to spaces
|
167
|
-
untabify_old = function(str, numSpaces = 3) {
|
168
|
-
var _, i, lLines, lMatches, len, oneIndent, prefix, ref, theRest;
|
169
|
-
oneIndent = ' '.repeat(numSpaces);
|
170
|
-
lLines = [];
|
171
|
-
ref = blockToArray(str);
|
172
|
-
for (i = 0, len = ref.length; i < len; i++) {
|
173
|
-
str = ref[i];
|
174
|
-
lMatches = str.match(/^(\t*)(.*)$/);
|
175
|
-
[_, prefix, theRest] = lMatches;
|
176
|
-
if (prefix === '') {
|
177
|
-
lLines.push(theRest);
|
178
|
-
} else {
|
179
|
-
lLines.push(oneIndent.repeat(prefix.length) + theRest);
|
180
|
-
}
|
181
|
-
}
|
182
|
-
return arrayToBlock(lLines);
|
183
|
-
};
|
184
|
-
|
185
163
|
// ---------------------------------------------------------------------------
|
186
164
|
// untabify - convert ALL TABs to spaces
|
187
165
|
export var untabify = function(str, numSpaces = 3) {
|
package/src/log_utils.coffee
CHANGED
@@ -134,17 +134,15 @@ export log = (str, hOptions={}) ->
|
|
134
134
|
|
135
135
|
export logItem = (label, item, hOptions={}) ->
|
136
136
|
# --- valid options:
|
137
|
-
# prefix
|
138
|
-
# itemPrefix
|
137
|
+
# prefix - not used
|
138
|
+
# itemPrefix - always used
|
139
139
|
|
140
140
|
assert isFunction(putstr), "putstr not properly set"
|
141
141
|
assert !label || isString(label), "label a non-string"
|
142
142
|
assert isHash(hOptions), "arg 3 not a hash"
|
143
143
|
|
144
144
|
label = fixStr(label)
|
145
|
-
prefix = fixStr(hOptions.prefix)
|
146
|
-
itemPrefix = fixStr(hOptions.itemPrefix || prefix)
|
147
|
-
|
145
|
+
prefix = fixStr(hOptions.itemPrefix || hOptions.prefix)
|
148
146
|
labelStr = if label then "#{label} = " else ""
|
149
147
|
|
150
148
|
if (item == undef)
|
@@ -155,16 +153,16 @@ export logItem = (label, item, hOptions={}) ->
|
|
155
153
|
else
|
156
154
|
if label
|
157
155
|
putstr "#{prefix}#{label}:"
|
158
|
-
putBlock item,
|
156
|
+
putBlock item, prefix
|
159
157
|
else if isNumber(item)
|
160
158
|
putstr "#{prefix}#{labelStr}#{item}"
|
161
159
|
else
|
162
|
-
putstr "#{
|
160
|
+
putstr "#{prefix}#{sep_dash}"
|
163
161
|
if label
|
164
162
|
putstr "#{prefix}#{label}:"
|
165
163
|
for str in blockToArray(stringify(item, true)) # escape special chars
|
166
|
-
putstr "#{
|
167
|
-
putstr "#{
|
164
|
+
putstr "#{prefix}#{indentation(1)}#{fixStr(str)}"
|
165
|
+
putstr "#{prefix}#{sep_dash}"
|
168
166
|
|
169
167
|
return
|
170
168
|
|
package/src/log_utils.js
CHANGED
@@ -151,16 +151,15 @@ export var log = function(str, hOptions = {}) {
|
|
151
151
|
|
152
152
|
// ---------------------------------------------------------------------------
|
153
153
|
export var logItem = function(label, item, hOptions = {}) {
|
154
|
-
var i,
|
154
|
+
var i, labelStr, len, prefix, ref, str;
|
155
155
|
// --- valid options:
|
156
|
-
// prefix
|
157
|
-
// itemPrefix
|
156
|
+
// prefix - not used
|
157
|
+
// itemPrefix - always used
|
158
158
|
assert(isFunction(putstr), "putstr not properly set");
|
159
159
|
assert(!label || isString(label), "label a non-string");
|
160
160
|
assert(isHash(hOptions), "arg 3 not a hash");
|
161
161
|
label = fixStr(label);
|
162
|
-
prefix = fixStr(hOptions.prefix);
|
163
|
-
itemPrefix = fixStr(hOptions.itemPrefix || prefix);
|
162
|
+
prefix = fixStr(hOptions.itemPrefix || hOptions.prefix);
|
164
163
|
labelStr = label ? `${label} = ` : "";
|
165
164
|
if (item === undef) {
|
166
165
|
putstr(`${prefix}${labelStr}undef`);
|
@@ -171,12 +170,12 @@ export var logItem = function(label, item, hOptions = {}) {
|
|
171
170
|
if (label) {
|
172
171
|
putstr(`${prefix}${label}:`);
|
173
172
|
}
|
174
|
-
putBlock(item,
|
173
|
+
putBlock(item, prefix);
|
175
174
|
}
|
176
175
|
} else if (isNumber(item)) {
|
177
176
|
putstr(`${prefix}${labelStr}${item}`);
|
178
177
|
} else {
|
179
|
-
putstr(`${
|
178
|
+
putstr(`${prefix}${sep_dash}`);
|
180
179
|
if (label) {
|
181
180
|
putstr(`${prefix}${label}:`);
|
182
181
|
}
|
@@ -184,9 +183,9 @@ export var logItem = function(label, item, hOptions = {}) {
|
|
184
183
|
// escape special chars
|
185
184
|
for (i = 0, len = ref.length; i < len; i++) {
|
186
185
|
str = ref[i];
|
187
|
-
putstr(`${
|
186
|
+
putstr(`${prefix}${indentation(1)}${fixStr(str)}`);
|
188
187
|
}
|
189
|
-
putstr(`${
|
188
|
+
putstr(`${prefix}${sep_dash}`);
|
190
189
|
}
|
191
190
|
};
|
192
191
|
|