mol_regexp 0.0.1608 → 0.0.1609

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/node.test.js CHANGED
@@ -486,6 +486,32 @@ var $;
486
486
  $.$mol_fail_catch = $mol_fail_catch;
487
487
  })($ || ($ = {}));
488
488
 
489
+ ;
490
+ "use strict";
491
+ var $;
492
+ (function ($) {
493
+ function $mol_try(handler) {
494
+ try {
495
+ return handler();
496
+ }
497
+ catch (error) {
498
+ return error;
499
+ }
500
+ }
501
+ $.$mol_try = $mol_try;
502
+ })($ || ($ = {}));
503
+
504
+ ;
505
+ "use strict";
506
+ var $;
507
+ (function ($) {
508
+ $mol_test({
509
+ 'return result without errors'() {
510
+ $mol_assert_equal($mol_try(() => false), false);
511
+ },
512
+ });
513
+ })($ || ($ = {}));
514
+
489
515
  ;
490
516
  "use strict";
491
517
  var $;
@@ -495,7 +521,7 @@ var $;
495
521
  return false;
496
522
  if (!$mol_fail_catch(error))
497
523
  return false;
498
- console.error(error);
524
+ $mol_try(() => { $mol_fail_hidden(error); });
499
525
  return true;
500
526
  }
501
527
  $.$mol_fail_log = $mol_fail_log;
@@ -633,7 +659,7 @@ var $;
633
659
  get: () => stack_get() + '\n' + [
634
660
  this.cause ?? 'no cause',
635
661
  ...this.errors.flatMap(e => [
636
- e.stack,
662
+ String(e.stack),
637
663
  ...e instanceof $mol_error_mix || !e.cause ? [] : [e.cause]
638
664
  ])
639
665
  ].map(frame_normalize).join('\n')
@@ -987,6 +1013,17 @@ var $;
987
1013
  $.$mol_dev_format_register = $mol_dev_format_register;
988
1014
  $.$mol_dev_format_head = Symbol('$mol_dev_format_head');
989
1015
  $.$mol_dev_format_body = Symbol('$mol_dev_format_body');
1016
+ function $mol_dev_format_button(label, click) {
1017
+ return $mol_dev_format_auto({
1018
+ [$.$mol_dev_format_head]() {
1019
+ return $mol_dev_format_span({ color: 'cornflowerblue' }, label);
1020
+ },
1021
+ [$.$mol_dev_format_body]() {
1022
+ Promise.resolve().then(click);
1023
+ return $mol_dev_format_span({});
1024
+ }
1025
+ });
1026
+ }
990
1027
  $mol_dev_format_register({
991
1028
  header: (val, config = false) => {
992
1029
  if (config)
@@ -1004,13 +1041,41 @@ var $;
1004
1041
  if (typeof val === 'function') {
1005
1042
  return $mol_dev_format_native(val);
1006
1043
  }
1044
+ if (Error.isError(val)) {
1045
+ return $mol_dev_format_span({}, $mol_dev_format_native(val), ' ', $mol_dev_format_button('throw', () => $mol_fail_hidden(val)));
1046
+ }
1047
+ if (val instanceof Promise) {
1048
+ return $.$mol_dev_format_shade($mol_dev_format_native(val), ' ', val[Symbol.toStringTag] ?? '');
1049
+ }
1007
1050
  if (Symbol.toStringTag in val) {
1008
1051
  return $mol_dev_format_native(val);
1009
1052
  }
1010
1053
  return null;
1011
1054
  },
1012
- hasBody: val => val[$.$mol_dev_format_body],
1013
- body: val => val[$.$mol_dev_format_body](),
1055
+ hasBody: (val, config = false) => {
1056
+ if (config)
1057
+ return false;
1058
+ if (!val)
1059
+ return false;
1060
+ if (val[$.$mol_dev_format_body])
1061
+ return true;
1062
+ return false;
1063
+ },
1064
+ body: (val, config = false) => {
1065
+ if (config)
1066
+ return null;
1067
+ if (!val)
1068
+ return null;
1069
+ if ($.$mol_dev_format_body in val) {
1070
+ try {
1071
+ return val[$.$mol_dev_format_body]();
1072
+ }
1073
+ catch (error) {
1074
+ return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), '');
1075
+ }
1076
+ }
1077
+ return null;
1078
+ },
1014
1079
  });
1015
1080
  function $mol_dev_format_native(obj) {
1016
1081
  if (typeof obj === 'undefined')
@@ -1076,6 +1141,69 @@ var $;
1076
1141
  $.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, {
1077
1142
  'margin-left': '13px'
1078
1143
  });
1144
+ class Stack extends Array {
1145
+ toString() {
1146
+ return this.join('\n');
1147
+ }
1148
+ }
1149
+ class Call extends Object {
1150
+ type;
1151
+ function;
1152
+ method;
1153
+ eval;
1154
+ source;
1155
+ offset;
1156
+ pos;
1157
+ object;
1158
+ flags;
1159
+ [Symbol.toStringTag];
1160
+ constructor(call) {
1161
+ super();
1162
+ this.type = call.getTypeName() ?? '';
1163
+ this.function = call.getFunctionName() ?? '';
1164
+ this.method = call.getMethodName() ?? '';
1165
+ if (this.method === this.function)
1166
+ this.method = '';
1167
+ this.pos = [call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0];
1168
+ this.eval = call.getEvalOrigin() ?? '';
1169
+ this.source = call.getScriptNameOrSourceURL() ?? '';
1170
+ this.object = call.getThis();
1171
+ this.offset = call.getPosition();
1172
+ const flags = [];
1173
+ if (call.isAsync())
1174
+ flags.push('async');
1175
+ if (call.isConstructor())
1176
+ flags.push('constructor');
1177
+ if (call.isEval())
1178
+ flags.push('eval');
1179
+ if (call.isNative())
1180
+ flags.push('native');
1181
+ if (call.isPromiseAll())
1182
+ flags.push('PromiseAll');
1183
+ if (call.isToplevel())
1184
+ flags.push('top');
1185
+ this.flags = flags;
1186
+ const type = this.type ? this.type + '.' : '';
1187
+ const func = this.function || '<anon>';
1188
+ const method = this.method ? ' [' + this.method + '] ' : '';
1189
+ this[Symbol.toStringTag] = `${type}${func}${method}`;
1190
+ }
1191
+ [Symbol.toPrimitive]() {
1192
+ return this.toString();
1193
+ }
1194
+ toString() {
1195
+ const object = this.object || '';
1196
+ const label = this[Symbol.toStringTag];
1197
+ const source = `${this.source}:${this.pos.join(':')} #${this.offset}`;
1198
+ return `\tat ${object}${label} (${source})`;
1199
+ }
1200
+ [$.$mol_dev_format_head]() {
1201
+ return $.$mol_dev_format_div({}, $mol_dev_format_native(this), $.$mol_dev_format_shade(' '), ...this.object ? [
1202
+ $mol_dev_format_native(this.object),
1203
+ ] : [], ...this.method ? [$.$mol_dev_format_shade(' ', ' [', this.method, ']')] : [], $.$mol_dev_format_shade(' ', this.flags.join(', ')));
1204
+ }
1205
+ }
1206
+ Error.prepareStackTrace ??= (error, stack) => new Stack(...stack.map(call => new Call(call)));
1079
1207
  })($ || ($ = {}));
1080
1208
 
1081
1209
  ;
@@ -3040,7 +3168,7 @@ var $;
3040
3168
  if (left instanceof RegExp)
3041
3169
  return left.source === right.source && left.flags === right.flags;
3042
3170
  if (left instanceof Error)
3043
- return left.message === right.message && left.stack === right.stack;
3171
+ return left.message === right.message && $mol_compare_deep(left.stack, right.stack);
3044
3172
  let left_cache = $.$mol_compare_deep_cache.get(left);
3045
3173
  if (left_cache) {
3046
3174
  const right_cache = left_cache.get(right);
@@ -3302,7 +3430,7 @@ var $;
3302
3430
  catch (error) {
3303
3431
  $.$mol_fail = fail;
3304
3432
  if (typeof ErrorRight === 'string') {
3305
- $mol_assert_equal(error.message, ErrorRight);
3433
+ $mol_assert_equal(error.message ?? error, ErrorRight);
3306
3434
  }
3307
3435
  else {
3308
3436
  $mol_assert_equal(error instanceof ErrorRight, true);
@@ -3326,7 +3454,7 @@ var $;
3326
3454
  continue;
3327
3455
  if (!$mol_compare_deep(args[i], args[j]))
3328
3456
  continue;
3329
- $mol_fail(new Error(`args[${i}] = args[${j}] = ${print(args[i])}`));
3457
+ return $mol_fail(new Error(`Uniquesess assertion failure`, { cause: { [i]: args[i], [i]: args[i] } }));
3330
3458
  }
3331
3459
  }
3332
3460
  }
@@ -3337,29 +3465,10 @@ var $;
3337
3465
  continue;
3338
3466
  if (args[0] instanceof $mol_dom_context.Element && args[i] instanceof $mol_dom_context.Element && args[0].outerHTML === args[i].outerHTML)
3339
3467
  continue;
3340
- return $mol_fail(new Error(`args[0] ≠ args[${i}]\n${print(args[0])}\n---\n${print(args[i])}`));
3468
+ return $mol_fail(new Error(`Equality assertion failure`, { cause: { 0: args[0], [i]: args[i] } }));
3341
3469
  }
3342
3470
  }
3343
3471
  $.$mol_assert_equal = $mol_assert_equal;
3344
- const print = (val) => {
3345
- if (!val)
3346
- return val;
3347
- if (typeof val === 'bigint')
3348
- return String(val) + 'n';
3349
- if (typeof val === 'symbol')
3350
- return `Symbol(${val.description})`;
3351
- if (typeof val !== 'object')
3352
- return val;
3353
- if ('outerHTML' in val)
3354
- return val.outerHTML;
3355
- try {
3356
- return JSON.stringify(val, (k, v) => typeof v === 'bigint' ? String(v) : v, '\t');
3357
- }
3358
- catch (error) {
3359
- console.error(error);
3360
- return val;
3361
- }
3362
- };
3363
3472
  })($ || ($ = {}));
3364
3473
 
3365
3474
  ;