@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.
@@ -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
- wrap(object = globalThis, options = {
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
- mapValues: undefined,
264
- mapLine: undefined,
429
+ lineEnding: '\n',
430
+ maxLen: 78,
431
+ perLine: undefined,
432
+ perLinePerProperty: undefined,
433
+ preProcess: undefined,
434
+ preReturn: undefined,
435
+ separator: ', ',
265
436
  }) {
266
- const { indent = 2, separator = ', ', indentCharacter = ' ', lineEnding = '\n', inspector = [Object, 'getOwnPropertyNames'], mapValues, mapLine, } = options ?? {};
267
- let tab = indent === 0 ? '' : indentCharacter.repeat(Number(indent) || 2);
268
- let maxLen = 76 - tab.length;
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(object) ? object : getElements(Object(object));
272
- if (typeof mapValues === 'function') {
273
- values = values.map(mapValues);
445
+ let values = Array.isArray(objectOrLines)
446
+ ? objectOrLines : getElements(Object(objectOrLines));
447
+ if (validMapper(preProcess)) {
448
+ values = preProcess(values);
274
449
  }
275
- return values.reduce((acc, key, index, { length }) => {
276
- const endOfLine = index < (length - 1) ? separator : '';
277
- let ifCombined = [
278
- tab, ...line.join(separator), key, endOfLine
279
- ].join('').trim();
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 lineElements = [...line, key];
285
- let debug = `<-- (len: ${[tab, ...line.join(separator), key, endOfLine].join('').trim().length})`;
286
- if (typeof mapLine === 'function') {
287
- lineElements = lineElements.map(mapLine);
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
- const completeLine = (tab +
290
- lineElements.slice(1).join(separator) +
291
- endOfLine).trim();
292
- acc.push(completeLine + debug);
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
- }, []).join(lineEnding);
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 { extractFrom, mightContain } = JSONExtensions.patches;
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
- * Creates a new Symbol with the given name and optional data. If data
16
- * is provided, it will be stringified and appended to the symbol's
17
- * name. This method is useful for creating unique symbols that carry
18
- * additional metadata.
19
- *
20
- * @param {string} name The name of the symbol.
21
- * @param {*} [data] Optional data to be associated with the symbol.
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
- return extractFrom(string);
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) && typeof this.data === 'function';
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":"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"}
1
+ {"version":3,"file":"symbol.extensions.js","sourceRoot":"","sources":["../../src/symbol.extensions.js"],"names":[],"mappings":"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"}