mol_dump_lib 0.0.793 → 0.0.795

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/web.mjs CHANGED
@@ -375,6 +375,17 @@ var $;
375
375
  $.$mol_dev_format_register = $mol_dev_format_register;
376
376
  $.$mol_dev_format_head = Symbol('$mol_dev_format_head');
377
377
  $.$mol_dev_format_body = Symbol('$mol_dev_format_body');
378
+ function $mol_dev_format_button(label, click) {
379
+ return $mol_dev_format_auto({
380
+ [$.$mol_dev_format_head]() {
381
+ return $mol_dev_format_span({ color: 'cornflowerblue' }, label);
382
+ },
383
+ [$.$mol_dev_format_body]() {
384
+ Promise.resolve().then(click);
385
+ return $mol_dev_format_span({});
386
+ }
387
+ });
388
+ }
378
389
  $mol_dev_format_register({
379
390
  header: (val, config = false) => {
380
391
  if (config)
@@ -392,13 +403,41 @@ var $;
392
403
  if (typeof val === 'function') {
393
404
  return $mol_dev_format_native(val);
394
405
  }
406
+ if (Error.isError(val)) {
407
+ return $mol_dev_format_span({}, $mol_dev_format_native(val), ' ', $mol_dev_format_button('throw', () => $mol_fail_hidden(val)));
408
+ }
409
+ if (val instanceof Promise) {
410
+ return $.$mol_dev_format_shade($mol_dev_format_native(val), ' ', val[Symbol.toStringTag] ?? '');
411
+ }
395
412
  if (Symbol.toStringTag in val) {
396
413
  return $mol_dev_format_native(val);
397
414
  }
398
415
  return null;
399
416
  },
400
- hasBody: val => val[$.$mol_dev_format_body],
401
- body: val => val[$.$mol_dev_format_body](),
417
+ hasBody: (val, config = false) => {
418
+ if (config)
419
+ return false;
420
+ if (!val)
421
+ return false;
422
+ if (val[$.$mol_dev_format_body])
423
+ return true;
424
+ return false;
425
+ },
426
+ body: (val, config = false) => {
427
+ if (config)
428
+ return null;
429
+ if (!val)
430
+ return null;
431
+ if ($.$mol_dev_format_body in val) {
432
+ try {
433
+ return val[$.$mol_dev_format_body]();
434
+ }
435
+ catch (error) {
436
+ return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), '');
437
+ }
438
+ }
439
+ return null;
440
+ },
402
441
  });
403
442
  function $mol_dev_format_native(obj) {
404
443
  if (typeof obj === 'undefined')
@@ -464,6 +503,69 @@ var $;
464
503
  $.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, {
465
504
  'margin-left': '13px'
466
505
  });
506
+ class Stack extends Array {
507
+ toString() {
508
+ return this.join('\n');
509
+ }
510
+ }
511
+ class Call extends Object {
512
+ type;
513
+ function;
514
+ method;
515
+ eval;
516
+ source;
517
+ offset;
518
+ pos;
519
+ object;
520
+ flags;
521
+ [Symbol.toStringTag];
522
+ constructor(call) {
523
+ super();
524
+ this.type = call.getTypeName() ?? '';
525
+ this.function = call.getFunctionName() ?? '';
526
+ this.method = call.getMethodName() ?? '';
527
+ if (this.method === this.function)
528
+ this.method = '';
529
+ this.pos = [call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0];
530
+ this.eval = call.getEvalOrigin() ?? '';
531
+ this.source = call.getScriptNameOrSourceURL() ?? '';
532
+ this.object = call.getThis();
533
+ this.offset = call.getPosition();
534
+ const flags = [];
535
+ if (call.isAsync())
536
+ flags.push('async');
537
+ if (call.isConstructor())
538
+ flags.push('constructor');
539
+ if (call.isEval())
540
+ flags.push('eval');
541
+ if (call.isNative())
542
+ flags.push('native');
543
+ if (call.isPromiseAll())
544
+ flags.push('PromiseAll');
545
+ if (call.isToplevel())
546
+ flags.push('top');
547
+ this.flags = flags;
548
+ const type = this.type ? this.type + '.' : '';
549
+ const func = this.function || '<anon>';
550
+ const method = this.method ? ' [' + this.method + '] ' : '';
551
+ this[Symbol.toStringTag] = `${type}${func}${method}`;
552
+ }
553
+ [Symbol.toPrimitive]() {
554
+ return this.toString();
555
+ }
556
+ toString() {
557
+ const object = this.object || '';
558
+ const label = this[Symbol.toStringTag];
559
+ const source = `${this.source}:${this.pos.join(':')} #${this.offset}`;
560
+ return `\tat ${object}${label} (${source})`;
561
+ }
562
+ [$.$mol_dev_format_head]() {
563
+ return $.$mol_dev_format_div({}, $mol_dev_format_native(this), $.$mol_dev_format_shade(' '), ...this.object ? [
564
+ $mol_dev_format_native(this.object),
565
+ ] : [], ...this.method ? [$.$mol_dev_format_shade(' ', ' [', this.method, ']')] : [], $.$mol_dev_format_shade(' ', this.flags.join(', ')));
566
+ }
567
+ }
568
+ Error.prepareStackTrace ??= (error, stack) => new Stack(...stack.map(call => new Call(call)));
467
569
  })($ || ($ = {}));
468
570
 
469
571
  ;
@@ -1017,7 +1119,7 @@ var $;
1017
1119
  if (left instanceof RegExp)
1018
1120
  return left.source === right.source && left.flags === right.flags;
1019
1121
  if (left instanceof Error)
1020
- return left.message === right.message && left.stack === right.stack;
1122
+ return left.message === right.message && $mol_compare_deep(left.stack, right.stack);
1021
1123
  let left_cache = $.$mol_compare_deep_cache.get(left);
1022
1124
  if (left_cache) {
1023
1125
  const right_cache = left_cache.get(right);
@@ -1303,6 +1405,33 @@ var $;
1303
1405
  $.$mol_fail_catch = $mol_fail_catch;
1304
1406
  })($ || ($ = {}));
1305
1407
 
1408
+ ;
1409
+ "use strict";
1410
+ var $;
1411
+ (function ($) {
1412
+ let error;
1413
+ let result;
1414
+ let handler;
1415
+ function $mol_try(handler2) {
1416
+ handler = handler2;
1417
+ error = undefined;
1418
+ result = undefined;
1419
+ window.dispatchEvent(new Event('$mol_try'));
1420
+ const error2 = error;
1421
+ const result2 = result;
1422
+ error = undefined;
1423
+ result = undefined;
1424
+ return error2 || result2;
1425
+ }
1426
+ $.$mol_try = $mol_try;
1427
+ self.addEventListener('$mol_try', (event) => {
1428
+ result = handler();
1429
+ }, true);
1430
+ self.addEventListener('error', (event) => {
1431
+ error = event.error;
1432
+ }, true);
1433
+ })($ || ($ = {}));
1434
+
1306
1435
  ;
1307
1436
  "use strict";
1308
1437
  var $;
@@ -1312,7 +1441,7 @@ var $;
1312
1441
  return false;
1313
1442
  if (!$mol_fail_catch(error))
1314
1443
  return false;
1315
- console.error(error);
1444
+ $mol_try(() => { $mol_fail_hidden(error); });
1316
1445
  return true;
1317
1446
  }
1318
1447
  $.$mol_fail_log = $mol_fail_log;
@@ -6416,33 +6545,6 @@ var $;
6416
6545
  ($mol_mem(($.$mol_dump_value.prototype), "preview_show"));
6417
6546
 
6418
6547
 
6419
- ;
6420
- "use strict";
6421
- var $;
6422
- (function ($) {
6423
- let error;
6424
- let result;
6425
- let handler;
6426
- function $mol_try(handler2) {
6427
- handler = handler2;
6428
- error = undefined;
6429
- result = undefined;
6430
- window.dispatchEvent(new Event('$mol_try'));
6431
- const error2 = error;
6432
- const result2 = result;
6433
- error = undefined;
6434
- result = undefined;
6435
- return error2 || result2;
6436
- }
6437
- $.$mol_try = $mol_try;
6438
- self.addEventListener('$mol_try', (event) => {
6439
- result = handler();
6440
- }, true);
6441
- self.addEventListener('error', (event) => {
6442
- error = event.error;
6443
- }, true);
6444
- })($ || ($ = {}));
6445
-
6446
6548
  ;
6447
6549
  "use strict";
6448
6550
 
package/web.test.js CHANGED
@@ -780,7 +780,7 @@ var $;
780
780
  catch (error) {
781
781
  $.$mol_fail = fail;
782
782
  if (typeof ErrorRight === 'string') {
783
- $mol_assert_equal(error.message, ErrorRight);
783
+ $mol_assert_equal(error.message ?? error, ErrorRight);
784
784
  }
785
785
  else {
786
786
  $mol_assert_equal(error instanceof ErrorRight, true);
@@ -804,7 +804,7 @@ var $;
804
804
  continue;
805
805
  if (!$mol_compare_deep(args[i], args[j]))
806
806
  continue;
807
- $mol_fail(new Error(`args[${i}] = args[${j}] = ${print(args[i])}`));
807
+ return $mol_fail(new Error(`Uniquesess assertion failure`, { cause: { [i]: args[i], [i]: args[i] } }));
808
808
  }
809
809
  }
810
810
  }
@@ -815,29 +815,10 @@ var $;
815
815
  continue;
816
816
  if (args[0] instanceof $mol_dom_context.Element && args[i] instanceof $mol_dom_context.Element && args[0].outerHTML === args[i].outerHTML)
817
817
  continue;
818
- return $mol_fail(new Error(`args[0] ≠ args[${i}]\n${print(args[0])}\n---\n${print(args[i])}`));
818
+ return $mol_fail(new Error(`Equality assertion failure`, { cause: { 0: args[0], [i]: args[i] } }));
819
819
  }
820
820
  }
821
821
  $.$mol_assert_equal = $mol_assert_equal;
822
- const print = (val) => {
823
- if (!val)
824
- return val;
825
- if (typeof val === 'bigint')
826
- return String(val) + 'n';
827
- if (typeof val === 'symbol')
828
- return `Symbol(${val.description})`;
829
- if (typeof val !== 'object')
830
- return val;
831
- if ('outerHTML' in val)
832
- return val.outerHTML;
833
- try {
834
- return JSON.stringify(val, (k, v) => typeof v === 'bigint' ? String(v) : v, '\t');
835
- }
836
- catch (error) {
837
- console.error(error);
838
- return val;
839
- }
840
- };
841
822
  })($ || ($ = {}));
842
823
 
843
824
  ;
@@ -2077,6 +2058,17 @@ var $;
2077
2058
  ;
2078
2059
  "use strict";
2079
2060
 
2061
+ ;
2062
+ "use strict";
2063
+ var $;
2064
+ (function ($) {
2065
+ $mol_test({
2066
+ 'return result without errors'() {
2067
+ $mol_assert_equal($mol_try(() => false), false);
2068
+ },
2069
+ });
2070
+ })($ || ($ = {}));
2071
+
2080
2072
  ;
2081
2073
  "use strict";
2082
2074
  var $;
@@ -3244,16 +3236,5 @@ var $;
3244
3236
  });
3245
3237
  })($ || ($ = {}));
3246
3238
 
3247
- ;
3248
- "use strict";
3249
- var $;
3250
- (function ($) {
3251
- $mol_test({
3252
- 'return result without errors'() {
3253
- $mol_assert_equal($mol_try(() => false), false);
3254
- },
3255
- });
3256
- })($ || ($ = {}));
3257
-
3258
3239
 
3259
3240
  //# sourceMappingURL=web.test.js.map