@nejs/basic-extensions 2.8.0 → 2.9.0
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/README.md +268 -147
- package/bin/version +100 -0
- package/dist/@nejs/basic-extensions.bundle.2.8.0.js +19 -0
- package/dist/@nejs/basic-extensions.bundle.2.8.0.js.map +7 -0
- package/dist/cjs/json.extensions.js +3 -2
- package/dist/cjs/json.extensions.js.map +1 -1
- package/dist/cjs/object.extensions.js +18 -6
- package/dist/cjs/object.extensions.js.map +1 -1
- package/dist/cjs/string.extensions.js +218 -28
- package/dist/cjs/string.extensions.js.map +1 -1
- package/dist/cjs/symbol.extensions.js +150 -29
- package/dist/cjs/symbol.extensions.js.map +1 -1
- package/dist/mjs/json.extensions.js +3 -2
- package/dist/mjs/json.extensions.js.map +1 -1
- package/dist/mjs/object.extensions.js +18 -6
- package/dist/mjs/object.extensions.js.map +1 -1
- package/dist/mjs/string.extensions.js +218 -28
- package/dist/mjs/string.extensions.js.map +1 -1
- package/dist/mjs/symbol.extensions.js +151 -30
- package/dist/mjs/symbol.extensions.js.map +1 -1
- package/docs/index.html +1045 -525
- package/package.json +4 -4
- package/src/json.extensions.js +3 -2
- package/src/object.extensions.js +21 -6
- package/src/string.extensions.js +259 -40
- package/src/symbol.extensions.js +151 -30
- package/dist/@nejs/basic-extensions.bundle.2.7.0.js +0 -19
- package/dist/@nejs/basic-extensions.bundle.2.7.0.js.map +0 -7
|
@@ -254,47 +254,237 @@ export const StringExtensions = new Patch(String, {
|
|
|
254
254
|
(parseInt(hex.substring(6, 8), 16) / 255.0) * 1.0;
|
|
255
255
|
return `rgba(${red}, ${green}, ${blue}, ${alpha.toFixed(2)})`;
|
|
256
256
|
},
|
|
257
|
-
|
|
257
|
+
/**
|
|
258
|
+
* Applies Select Graphic Rendition (SGR) parameters to a given message for
|
|
259
|
+
* styling in terminal environments. This function allows for the dynamic
|
|
260
|
+
* styling of text output using ANSI escape codes. It supports a variety of
|
|
261
|
+
* modes such as color, brightness, and text decorations like bold or underline.
|
|
262
|
+
*
|
|
263
|
+
* @param {string} message The message to be styled.
|
|
264
|
+
* @param {...string} useModes A series of strings representing the desired
|
|
265
|
+
* styling modes. Modes can include colors (e.g., 'red', 'blue'), brightness
|
|
266
|
+
* ('bright'), foreground/background ('fg', 'bg'), and text decorations
|
|
267
|
+
* ('bold', 'underline'). Modes can be combined in a single string using
|
|
268
|
+
* commas or passed as separate arguments.
|
|
269
|
+
*
|
|
270
|
+
* Colors:
|
|
271
|
+
* ```
|
|
272
|
+
* 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'
|
|
273
|
+
* ```
|
|
274
|
+
* Color Specifiers:
|
|
275
|
+
* ```
|
|
276
|
+
* 'fg' -> foreground | 'bg' -> background | 'bright' -> bright colors
|
|
277
|
+
* ```
|
|
278
|
+
*
|
|
279
|
+
* Modes:
|
|
280
|
+
* ```
|
|
281
|
+
* 'blink' or 'k' | 'conceal' or 'c' | 'italics' or 'i' | 'strike' or 's'
|
|
282
|
+
* 'bold' or 'b' | 'dim' or 'd' | 'negative' or 'n' | 'underline' or 'u'
|
|
283
|
+
* ```
|
|
284
|
+
*
|
|
285
|
+
* Examples:
|
|
286
|
+
* - `sgr('Hello', 'red')` applies red color to 'Hello'.
|
|
287
|
+
* - `sgr('World', 'green,bold')` applies green color and bold styling
|
|
288
|
+
* to 'World'.
|
|
289
|
+
* - `sgr('Example', 'bluebgbright')` applies bright blue
|
|
290
|
+
* background color.
|
|
291
|
+
*
|
|
292
|
+
* Short hand syntax is also allowed:
|
|
293
|
+
* - `sgr('hello', 'biu')` applies bold, italics and underline
|
|
294
|
+
* - `sgr('hello', 'bi,redfg')` applies bold, italics and red foreground
|
|
295
|
+
*
|
|
296
|
+
* As a bonus, there is a secret getter applied to the return string that
|
|
297
|
+
* allows you to invoke `sgr(...).show` to automatically log the output to
|
|
298
|
+
* `console.log`. This is done by wrapping the output string in `Object()`
|
|
299
|
+
* to make it a `String` instance and then adding the property descriptor.
|
|
300
|
+
* A custom `Symbol` is applied to make it evaluate in nodejs as though it
|
|
301
|
+
* were a normal string. To strip the extras, wrap the output in `String()`
|
|
302
|
+
*
|
|
303
|
+
* @returns {string} The message wrapped in ANSI escape codes corresponding
|
|
304
|
+
* to the specified modes. The returned string, when printed to a terminal,
|
|
305
|
+
* displays the styled message. Additional properties are attached to the
|
|
306
|
+
* result for utility purposes, such as 'show' for immediate console output.
|
|
307
|
+
*/
|
|
308
|
+
sgr(message, ...useModes) {
|
|
309
|
+
const colors = Object.assign(['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'], {
|
|
310
|
+
isBG: a => !!/bg/i.exec(a),
|
|
311
|
+
isBright: a => !!/bright/i.exec(a),
|
|
312
|
+
isColor: a => {
|
|
313
|
+
let color = colors.find(c => new RegExp(c, 'i').exec(a));
|
|
314
|
+
return [!!color, colors.indexOf(color)];
|
|
315
|
+
},
|
|
316
|
+
});
|
|
317
|
+
const arrayifyString = s => {
|
|
318
|
+
if (Array.isArray(s)) {
|
|
319
|
+
let results = [];
|
|
320
|
+
for (const i of s) {
|
|
321
|
+
results = [...results, ...arrayifyString(i)];
|
|
322
|
+
}
|
|
323
|
+
return results.flat().filter(i => i.length);
|
|
324
|
+
}
|
|
325
|
+
if (!s || typeof s !== 'string') {
|
|
326
|
+
return [''];
|
|
327
|
+
}
|
|
328
|
+
else if (s.includes(',')) {
|
|
329
|
+
return arrayifyString(s.split(','));
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
if (!colors.isColor(s)[0] && s.length > 1) {
|
|
333
|
+
return [...s];
|
|
334
|
+
}
|
|
335
|
+
else
|
|
336
|
+
return [s];
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
let modes = arrayifyString(useModes);
|
|
340
|
+
const sgrModes = {
|
|
341
|
+
blink: ['\x1b[5m', '\x1b[25m', 'k'],
|
|
342
|
+
bold: ['\x1b[1m', '\x1b[22m', 'b'],
|
|
343
|
+
conceal: ['\x1b[8m', '\x1b[28m', 'c'],
|
|
344
|
+
dim: ['\x1b[2m', '\x1b[22m', 'd'],
|
|
345
|
+
italics: ['\x1b[3m', '\x1b[23m', 'i'],
|
|
346
|
+
negative: ['\x1b[7m', '\x1b[27m', 'n'],
|
|
347
|
+
strike: ['\x1b[9m', '\x1b[29m', 's'],
|
|
348
|
+
underline: ['\x1b[4m', '\x1b[24m', 'u'],
|
|
349
|
+
};
|
|
350
|
+
Object.values(sgrModes).forEach(mode => sgrModes[mode[2]] = mode);
|
|
351
|
+
const codes = a => {
|
|
352
|
+
let open = '', close = '', mode = String(a).toLowerCase();
|
|
353
|
+
let [_isColor, colorIndex] = colors.isColor(mode);
|
|
354
|
+
if (_isColor) {
|
|
355
|
+
open = colors.isBG(mode)
|
|
356
|
+
? `\x1b[${colors.isBright(mode) ? 10 : 4}${colorIndex}m`
|
|
357
|
+
: `\x1b[${colors.isBright(mode) ? 9 : 3}${colorIndex}m`;
|
|
358
|
+
close = colors.isBG(mode) ? '\x1b[49m' : `\x1b[39m`;
|
|
359
|
+
}
|
|
360
|
+
else if (sgrModes[mode]) {
|
|
361
|
+
open = sgrModes[mode][0];
|
|
362
|
+
close = sgrModes[mode][1];
|
|
363
|
+
}
|
|
364
|
+
return [open, close];
|
|
365
|
+
};
|
|
366
|
+
const onOrder = modes.map(key => codes(key)[0]).join('');
|
|
367
|
+
const offOrder = modes.map(key => codes(key)[1]).reverse().join('');
|
|
368
|
+
let result = Object(`${onOrder}${message}${offOrder}`);
|
|
369
|
+
Object.defineProperties(result, {
|
|
370
|
+
show: {
|
|
371
|
+
get() { console.log(String(this)); return this; },
|
|
372
|
+
enumerable: false,
|
|
373
|
+
},
|
|
374
|
+
[Symbol.for('nodejs.util.inspect.custom')]: {
|
|
375
|
+
value(depth, options, inspect) {
|
|
376
|
+
return inspect(String(this), options);
|
|
377
|
+
},
|
|
378
|
+
enumerable: false,
|
|
379
|
+
},
|
|
380
|
+
});
|
|
381
|
+
return result;
|
|
382
|
+
},
|
|
383
|
+
/**
|
|
384
|
+
* Wraps an object's properties into a formatted string.
|
|
385
|
+
*
|
|
386
|
+
* This method takes an object and a set of options to format the
|
|
387
|
+
* object's properties into a string. It allows customization of
|
|
388
|
+
* indentation, line endings, maximum line length, and more.
|
|
389
|
+
*
|
|
390
|
+
* @param {Object} [object=globalThis] - The object to wrap.
|
|
391
|
+
* @param {Object} [options={}] - The formatting options.
|
|
392
|
+
* @param {number} [options.indent=2] - The number of indentation
|
|
393
|
+
* characters to use.
|
|
394
|
+
* @param {string} [options.indentCharacter=' '] - The character to use
|
|
395
|
+
* for indentation.
|
|
396
|
+
* @param {Array} [options.inspector=[Object, 'getOwnPropertyNames']] -
|
|
397
|
+
* The inspector to use for retrieving object properties.
|
|
398
|
+
* @param {string} [options.lineEnding='\n'] - The line ending character.
|
|
399
|
+
* @param {number} [options.maxLen=78] - The maximum line length.
|
|
400
|
+
* @param {Function} [options.perLine=undefined] - A function to apply
|
|
401
|
+
* per line of output.
|
|
402
|
+
* @param {Function} [options.perLinePerProperty=undefined] - A function
|
|
403
|
+
* to apply per property per line of output.
|
|
404
|
+
* @param {Function} [options.preProcess=undefined] - A function to
|
|
405
|
+
* preprocess the object's properties.
|
|
406
|
+
* @param {Function} [options.preReturn=undefined] - A function to apply
|
|
407
|
+
* to the final output before returning.
|
|
408
|
+
* @param {string} [options.separator=', '] - The separator to use
|
|
409
|
+
* between properties.
|
|
410
|
+
*
|
|
411
|
+
* @returns {string} The formatted string representation of the object.
|
|
412
|
+
*
|
|
413
|
+
* @example
|
|
414
|
+
* const obj = { a: 1, b: 2, c: 3 }
|
|
415
|
+
* const wrapped = StringExtensions.wrap(obj, { maxLen: 20 })
|
|
416
|
+
* console.log(wrapped)
|
|
417
|
+
* // Output:
|
|
418
|
+
* // {
|
|
419
|
+
* // a: 1,
|
|
420
|
+
* // b: 2,
|
|
421
|
+
* // c: 3
|
|
422
|
+
* // }
|
|
423
|
+
*/
|
|
424
|
+
wrap(objectOrLines, options = {
|
|
425
|
+
colorProperties: undefined,
|
|
258
426
|
indent: 2,
|
|
259
|
-
separator: ', ',
|
|
260
427
|
indentCharacter: ' ',
|
|
261
|
-
lineEnding: '\n',
|
|
262
428
|
inspector: [Object, 'getOwnPropertyNames'],
|
|
263
|
-
|
|
264
|
-
|
|
429
|
+
lineEnding: '\n',
|
|
430
|
+
maxLen: 78,
|
|
431
|
+
perLine: undefined,
|
|
432
|
+
perLinePerProperty: undefined,
|
|
433
|
+
preProcess: undefined,
|
|
434
|
+
preReturn: undefined,
|
|
435
|
+
separator: ', ',
|
|
265
436
|
}) {
|
|
266
|
-
|
|
267
|
-
let tab = indent === 0 ? ''
|
|
268
|
-
|
|
437
|
+
let { colorProperties = undefined, indent = options?.indent ?? 2, indentCharacter = options?.indentCharacter ?? ' ', inspector = options?.inspector ?? [Object, 'getOwnPropertyNames'], lineEnding = options?.lineEnding ?? '\n', maxLen = options?.maxLen ?? 78, perLine = options?.perLine ?? undefined, perLinePerProperty = options?.perLinePerProperty ?? undefined, preProcess = options?.preProcess ?? undefined, preReturn = options?.preReturn ?? undefined, separator = options?.separator ?? ', ', } = options ?? {};
|
|
438
|
+
let tab = indent === 0 ? ''
|
|
439
|
+
: indentCharacter.repeat(Number(indent) || 2);
|
|
440
|
+
maxLen = 78 - tab.length;
|
|
441
|
+
const sgr = this.sgr;
|
|
442
|
+
const validMapper = f => typeof f === 'function';
|
|
269
443
|
let line = [];
|
|
270
444
|
let getElements = inspector[0][inspector[1]];
|
|
271
|
-
let values = Array.isArray(
|
|
272
|
-
|
|
273
|
-
|
|
445
|
+
let values = Array.isArray(objectOrLines)
|
|
446
|
+
? objectOrLines : getElements(Object(objectOrLines));
|
|
447
|
+
if (validMapper(preProcess)) {
|
|
448
|
+
values = preProcess(values);
|
|
274
449
|
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
let ifCombined = [
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
if (ifCombined.length < maxLen) {
|
|
281
|
-
line.push(key);
|
|
450
|
+
const context = { indent, indentCharacter, lineEnding, maxLen, tab, sgr };
|
|
451
|
+
let finalLines = values.reduce((acc, nextProp) => {
|
|
452
|
+
let ifCombined = [...line, nextProp].join(separator);
|
|
453
|
+
if ((tab.length + ifCombined.length) <= maxLen) {
|
|
454
|
+
line.push(nextProp);
|
|
282
455
|
}
|
|
283
456
|
else {
|
|
284
|
-
let
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
457
|
+
let lineProps = [...line];
|
|
458
|
+
if (validMapper(perLinePerProperty)) {
|
|
459
|
+
lineProps = lineProps.map((value, index, array) => {
|
|
460
|
+
return perLinePerProperty(value, index, array, context);
|
|
461
|
+
});
|
|
288
462
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
463
|
+
if (colorProperties) {
|
|
464
|
+
const sgrArgs = (Array.isArray(colorProperties)
|
|
465
|
+
? colorProperties
|
|
466
|
+
: [colorProperties]);
|
|
467
|
+
lineProps = lineProps.map(v => sgr(v, ...sgrArgs));
|
|
468
|
+
}
|
|
469
|
+
lineProps = [tab, lineProps.join(separator)].join('');
|
|
470
|
+
if (validMapper(perLine)) {
|
|
471
|
+
lineProps = perLine(lineProps[0], 0, lineProps)?.[0] ?? lineProps[0];
|
|
472
|
+
}
|
|
473
|
+
acc.push(lineProps);
|
|
293
474
|
line = [];
|
|
294
475
|
}
|
|
295
|
-
;
|
|
296
476
|
return acc;
|
|
297
|
-
}, [])
|
|
477
|
+
}, []);
|
|
478
|
+
if (validMapper(preReturn)) {
|
|
479
|
+
finalLines = finalLines.map((value, index, array) => {
|
|
480
|
+
return preReturn(value, index, array, context);
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
Symbol.for(`@nejs.string.wrap ${JSON.stringify({ lines: finalLines })}`);
|
|
484
|
+
if (lineEnding) {
|
|
485
|
+
finalLines = finalLines.join(lineEnding);
|
|
486
|
+
}
|
|
487
|
+
return finalLines;
|
|
298
488
|
},
|
|
299
489
|
});
|
|
300
490
|
const { isString: pIsString, ifString: pIfString } = StringExtensions.patches;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.extensions.js","sourceRoot":"","sources":["../../src/string.extensions.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"string.extensions.js","sourceRoot":"","sources":["../../src/string.extensions.js"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Patch } from '@nejs/extension';
|
|
1
|
+
import { Patch, PatchToggle } from '@nejs/extension';
|
|
2
2
|
import { Symkeys } from './classes/symkeys.js';
|
|
3
3
|
import { JSONExtensions } from './json.extensions.js';
|
|
4
|
-
const
|
|
4
|
+
const JSONToggle = new PatchToggle(JSONExtensions);
|
|
5
5
|
/**
|
|
6
6
|
* `SymbolExtensions` is a patch for the JavaScript built-in `Symbol` class. It
|
|
7
7
|
* adds utility methods to the `Symbol` class without modifying the global namespace
|
|
@@ -11,31 +11,14 @@ const { extractFrom, mightContain } = JSONExtensions.patches;
|
|
|
11
11
|
* utility functions.
|
|
12
12
|
*/
|
|
13
13
|
export const SymbolExtensions = new Patch(Symbol, {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
* @returns {symbol} A new symbol created with Symbol.for(), using the
|
|
23
|
-
* provided name and stringified data (if provided).
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* const symbolWithData = Symbol.withData('mySymbol', { foo: 'bar' })
|
|
27
|
-
* console.log(symbolWithData.toString())
|
|
28
|
-
* // Output: "Symbol(mySymbol {"foo":"bar"})"
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* const symbolWithoutData = Symbol.withData('mySymbol')
|
|
32
|
-
* console.log(symbolWithoutData.toString())
|
|
33
|
-
* // Output: "Symbol(mySymbol)"
|
|
34
|
-
*/
|
|
35
|
-
withData(name, data) {
|
|
36
|
-
return data !== undefined
|
|
37
|
-
? Symbol.for(`${name} ${JSON.stringify(data)}`)
|
|
38
|
-
: Symbol.for(name);
|
|
14
|
+
add(named, associatedData = {}) {
|
|
15
|
+
return this.keys.add(named, associatedData);
|
|
16
|
+
},
|
|
17
|
+
deleteData(forSymbol, replaceWith = undefined) {
|
|
18
|
+
return this.keys.deleteData(forSymbol, replaceWith);
|
|
19
|
+
},
|
|
20
|
+
hasData(forSymbol) {
|
|
21
|
+
return this.keys.hasData(forSymbol);
|
|
39
22
|
},
|
|
40
23
|
/**
|
|
41
24
|
* The `isSymbol` method does exactly what one would it expect. It returns
|
|
@@ -117,6 +100,35 @@ export const SymbolExtensions = new Patch(Symbol, {
|
|
|
117
100
|
* kOriginal.data = [Object.prototype, Array.prototype] // ...both work
|
|
118
101
|
*/
|
|
119
102
|
keys: new Symkeys('nejs'),
|
|
103
|
+
setData(forSymbol, value) {
|
|
104
|
+
this.keys.setData(forSymbol, value);
|
|
105
|
+
},
|
|
106
|
+
/**
|
|
107
|
+
* Creates a new Symbol with the given name and optional data. If data
|
|
108
|
+
* is provided, it will be stringified and appended to the symbol's
|
|
109
|
+
* name. This method is useful for creating unique symbols that carry
|
|
110
|
+
* additional metadata.
|
|
111
|
+
*
|
|
112
|
+
* @param {string} name The name of the symbol.
|
|
113
|
+
* @param {*} [data] Optional data to be associated with the symbol.
|
|
114
|
+
* @returns {symbol} A new symbol created with Symbol.for(), using the
|
|
115
|
+
* provided name and stringified data (if provided).
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* const symbolWithData = Symbol.withData('mySymbol', { foo: 'bar' })
|
|
119
|
+
* console.log(symbolWithData.toString())
|
|
120
|
+
* // Output: "Symbol(mySymbol {"foo":"bar"})"
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* const symbolWithoutData = Symbol.withData('mySymbol')
|
|
124
|
+
* console.log(symbolWithoutData.toString())
|
|
125
|
+
* // Output: "Symbol(mySymbol)"
|
|
126
|
+
*/
|
|
127
|
+
withData(name, data) {
|
|
128
|
+
return data !== undefined
|
|
129
|
+
? Symbol.for(`${name} ${JSON.stringify(data)}`)
|
|
130
|
+
: Symbol.for(name);
|
|
131
|
+
},
|
|
120
132
|
});
|
|
121
133
|
export const SymbolPrototypeExtensions = new Patch(Symbol.prototype, {
|
|
122
134
|
[Patch.kMutablyHidden]: {
|
|
@@ -184,7 +196,22 @@ export const SymbolPrototypeExtensions = new Patch(Symbol.prototype, {
|
|
|
184
196
|
return possibleData;
|
|
185
197
|
}
|
|
186
198
|
}
|
|
187
|
-
|
|
199
|
+
let result = undefined;
|
|
200
|
+
let revertToggle = false;
|
|
201
|
+
if (!JSONExtensions.applied) {
|
|
202
|
+
JSONToggle.start();
|
|
203
|
+
revertToggle = true;
|
|
204
|
+
}
|
|
205
|
+
if (JSON.mightContain(this.description)) {
|
|
206
|
+
try {
|
|
207
|
+
result = JSON.extractFrom(this.description);
|
|
208
|
+
}
|
|
209
|
+
catch (ignore) { }
|
|
210
|
+
}
|
|
211
|
+
if (revertToggle) {
|
|
212
|
+
JSONToggle.stop();
|
|
213
|
+
}
|
|
214
|
+
return result;
|
|
188
215
|
},
|
|
189
216
|
/**
|
|
190
217
|
* Sets the data associated with a symbol.
|
|
@@ -249,8 +276,102 @@ export const SymbolPrototypeExtensions = new Patch(Symbol.prototype, {
|
|
|
249
276
|
* console.log(sym.mightHaveEmbeddedJSON) // Output: false
|
|
250
277
|
*/
|
|
251
278
|
get mightHaveEmbeddedJSON() {
|
|
252
|
-
return mightContain(this.description)
|
|
279
|
+
return mightContain(this.description);
|
|
253
280
|
},
|
|
254
|
-
|
|
281
|
+
get sgrString() {
|
|
282
|
+
let revert = false;
|
|
283
|
+
let detail = undefined;
|
|
284
|
+
let { sgr } = String;
|
|
285
|
+
if (!sgr) {
|
|
286
|
+
sgr = (string, ...args) => string;
|
|
287
|
+
}
|
|
288
|
+
if (!JSONExtensions.applied) {
|
|
289
|
+
JSONToggle.start();
|
|
290
|
+
revert = true;
|
|
291
|
+
}
|
|
292
|
+
if ((detail = JSON.mightContain(this.description, true))) {
|
|
293
|
+
let jsonText = detail[2][0];
|
|
294
|
+
let index = detail[1];
|
|
295
|
+
if (~index && jsonText && jsonText.length > 30) {
|
|
296
|
+
let desc = this.description;
|
|
297
|
+
let newDescription = [
|
|
298
|
+
sgr(`Symbol.for(${desc.slice(0, index)}`, 'green'),
|
|
299
|
+
sgr(jsonText.slice(0, 10), 'di'),
|
|
300
|
+
'...',
|
|
301
|
+
sgr(jsonText.slice(-5), 'di'),
|
|
302
|
+
sgr(`${desc.slice(index + jsonText.length + 1)})`, 'green'),
|
|
303
|
+
].join('');
|
|
304
|
+
if (revert) {
|
|
305
|
+
JSONToggle.stop();
|
|
306
|
+
}
|
|
307
|
+
return `${newDescription}`;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
if (revert) {
|
|
311
|
+
JSONToggle.stop();
|
|
312
|
+
}
|
|
313
|
+
return newDescription;
|
|
314
|
+
},
|
|
315
|
+
/**
|
|
316
|
+
* Custom inspect method for Node.js util.inspect.
|
|
317
|
+
*
|
|
318
|
+
* NOTE: this will only apply if looking at an instance of Symbol,
|
|
319
|
+
* sadly; {@see SymbolPrototypeExtensions.instance}
|
|
320
|
+
*
|
|
321
|
+
* This method is used by Node.js util.inspect to provide a custom
|
|
322
|
+
* representation of the symbol when inspected. It checks if the
|
|
323
|
+
* symbol's description might contain JSON data and if so, it
|
|
324
|
+
* truncates the JSON data in the description to a maximum of 30
|
|
325
|
+
* characters and formats the output with colors using the `sgr`
|
|
326
|
+
* function from the `String` object.
|
|
327
|
+
*
|
|
328
|
+
* @param {number} depth - The current depth of the recursive
|
|
329
|
+
* inspection.
|
|
330
|
+
* @param {Object} options - The options object passed to
|
|
331
|
+
* util.inspect.
|
|
332
|
+
* @param {Function} inspect - The original util.inspect function.
|
|
333
|
+
*
|
|
334
|
+
* @returns {string} - The formatted representation of the symbol.
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* const sym = Symbol.for('fun {"name":"John Doe"}')
|
|
338
|
+
* console.log(util.inspect(sym))
|
|
339
|
+
* // Output: Symbol.for(fun {"name":"John ...hn Doe"})
|
|
340
|
+
*/
|
|
341
|
+
[Symbol.for('nodejs.util.inspect.custom')](depth, options, inspect) {
|
|
342
|
+
let revert = false;
|
|
343
|
+
let detail = undefined;
|
|
344
|
+
let { sgr } = String;
|
|
345
|
+
if (!sgr) {
|
|
346
|
+
sgr = (string, ...args) => string;
|
|
347
|
+
}
|
|
348
|
+
if (!JSONExtensions.applied) {
|
|
349
|
+
JSONToggle.start();
|
|
350
|
+
revert = true;
|
|
351
|
+
}
|
|
352
|
+
if ((detail = JSON.mightContain(this.description, true))) {
|
|
353
|
+
let jsonText = detail[2][0];
|
|
354
|
+
let index = detail[1];
|
|
355
|
+
if (~index && jsonText && jsonText.length > 30) {
|
|
356
|
+
let desc = this.description;
|
|
357
|
+
let newDescription = [
|
|
358
|
+
sgr(`Symbol.for(${desc.slice(0, index)}`, 'green'),
|
|
359
|
+
sgr(jsonText.slice(0, 10), 'di'),
|
|
360
|
+
'...',
|
|
361
|
+
sgr(jsonText.slice(-5), 'di'),
|
|
362
|
+
sgr(`${desc.slice(index + jsonText.length + 1)})`, 'green'),
|
|
363
|
+
].join('');
|
|
364
|
+
if (revert) {
|
|
365
|
+
JSONToggle.stop();
|
|
366
|
+
}
|
|
367
|
+
return `${newDescription}`;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
if (revert) {
|
|
371
|
+
JSONToggle.stop();
|
|
372
|
+
}
|
|
373
|
+
return inspect(this, { colors: true });
|
|
374
|
+
},
|
|
375
|
+
},
|
|
255
376
|
});
|
|
256
377
|
//# sourceMappingURL=symbol.extensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol.extensions.js","sourceRoot":"","sources":["../../src/symbol.extensions.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"symbol.extensions.js","sourceRoot":"","sources":["../../src/symbol.extensions.js"],"names":[],"mappings":"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"}
|