mol_wire_dom 0.0.1484 → 0.0.1486

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
@@ -152,6 +152,16 @@ var $;
152
152
  $.$mol_wire_affected = [];
153
153
  })($ || ($ = {}));
154
154
 
155
+ ;
156
+ "use strict";
157
+ var $;
158
+ (function ($) {
159
+ function $mol_fail_hidden(error) {
160
+ throw error;
161
+ }
162
+ $.$mol_fail_hidden = $mol_fail_hidden;
163
+ })($ || ($ = {}));
164
+
155
165
  ;
156
166
  "use strict";
157
167
  var $;
@@ -163,6 +173,17 @@ var $;
163
173
  $.$mol_dev_format_register = $mol_dev_format_register;
164
174
  $.$mol_dev_format_head = Symbol('$mol_dev_format_head');
165
175
  $.$mol_dev_format_body = Symbol('$mol_dev_format_body');
176
+ function $mol_dev_format_button(label, click) {
177
+ return $mol_dev_format_auto({
178
+ [$.$mol_dev_format_head]() {
179
+ return $mol_dev_format_span({ color: 'cornflowerblue' }, label);
180
+ },
181
+ [$.$mol_dev_format_body]() {
182
+ Promise.resolve().then(click);
183
+ return $mol_dev_format_span({});
184
+ }
185
+ });
186
+ }
166
187
  $mol_dev_format_register({
167
188
  header: (val, config = false) => {
168
189
  if (config)
@@ -180,13 +201,41 @@ var $;
180
201
  if (typeof val === 'function') {
181
202
  return $mol_dev_format_native(val);
182
203
  }
204
+ if (Error.isError(val)) {
205
+ return $mol_dev_format_span({}, $mol_dev_format_native(val), ' ', $mol_dev_format_button('throw', () => $mol_fail_hidden(val)));
206
+ }
207
+ if (val instanceof Promise) {
208
+ return $.$mol_dev_format_shade($mol_dev_format_native(val), ' ', val[Symbol.toStringTag] ?? '');
209
+ }
183
210
  if (Symbol.toStringTag in val) {
184
211
  return $mol_dev_format_native(val);
185
212
  }
186
213
  return null;
187
214
  },
188
- hasBody: val => val[$.$mol_dev_format_body],
189
- body: val => val[$.$mol_dev_format_body](),
215
+ hasBody: (val, config = false) => {
216
+ if (config)
217
+ return false;
218
+ if (!val)
219
+ return false;
220
+ if (val[$.$mol_dev_format_body])
221
+ return true;
222
+ return false;
223
+ },
224
+ body: (val, config = false) => {
225
+ if (config)
226
+ return null;
227
+ if (!val)
228
+ return null;
229
+ if ($.$mol_dev_format_body in val) {
230
+ try {
231
+ return val[$.$mol_dev_format_body]();
232
+ }
233
+ catch (error) {
234
+ return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), '');
235
+ }
236
+ }
237
+ return null;
238
+ },
190
239
  });
191
240
  function $mol_dev_format_native(obj) {
192
241
  if (typeof obj === 'undefined')
@@ -252,6 +301,69 @@ var $;
252
301
  $.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, {
253
302
  'margin-left': '13px'
254
303
  });
304
+ class Stack extends Array {
305
+ toString() {
306
+ return this.join('\n');
307
+ }
308
+ }
309
+ class Call extends Object {
310
+ type;
311
+ function;
312
+ method;
313
+ eval;
314
+ source;
315
+ offset;
316
+ pos;
317
+ object;
318
+ flags;
319
+ [Symbol.toStringTag];
320
+ constructor(call) {
321
+ super();
322
+ this.type = call.getTypeName() ?? '';
323
+ this.function = call.getFunctionName() ?? '';
324
+ this.method = call.getMethodName() ?? '';
325
+ if (this.method === this.function)
326
+ this.method = '';
327
+ this.pos = [call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0];
328
+ this.eval = call.getEvalOrigin() ?? '';
329
+ this.source = call.getScriptNameOrSourceURL() ?? '';
330
+ this.object = call.getThis();
331
+ this.offset = call.getPosition();
332
+ const flags = [];
333
+ if (call.isAsync())
334
+ flags.push('async');
335
+ if (call.isConstructor())
336
+ flags.push('constructor');
337
+ if (call.isEval())
338
+ flags.push('eval');
339
+ if (call.isNative())
340
+ flags.push('native');
341
+ if (call.isPromiseAll())
342
+ flags.push('PromiseAll');
343
+ if (call.isToplevel())
344
+ flags.push('top');
345
+ this.flags = flags;
346
+ const type = this.type ? this.type + '.' : '';
347
+ const func = this.function || '<anon>';
348
+ const method = this.method ? ' [' + this.method + '] ' : '';
349
+ this[Symbol.toStringTag] = `${type}${func}${method}`;
350
+ }
351
+ [Symbol.toPrimitive]() {
352
+ return this.toString();
353
+ }
354
+ toString() {
355
+ const object = this.object || '';
356
+ const label = this[Symbol.toStringTag];
357
+ const source = `${this.source}:${this.pos.join(':')} #${this.offset}`;
358
+ return `\tat ${object}${label} (${source})`;
359
+ }
360
+ [$.$mol_dev_format_head]() {
361
+ return $.$mol_dev_format_div({}, $mol_dev_format_native(this), $.$mol_dev_format_shade(' '), ...this.object ? [
362
+ $mol_dev_format_native(this.object),
363
+ ] : [], ...this.method ? [$.$mol_dev_format_shade(' ', ' [', this.method, ']')] : [], $.$mol_dev_format_shade(' ', this.flags.join(', ')));
364
+ }
365
+ }
366
+ Error.prepareStackTrace ??= (error, stack) => new Stack(...stack.map(call => new Call(call)));
255
367
  })($ || ($ = {}));
256
368
 
257
369
  ;
@@ -493,16 +605,6 @@ var $;
493
605
  $.$mol_owning_catch = $mol_owning_catch;
494
606
  })($ || ($ = {}));
495
607
 
496
- ;
497
- "use strict";
498
- var $;
499
- (function ($) {
500
- function $mol_fail_hidden(error) {
501
- throw error;
502
- }
503
- $.$mol_fail_hidden = $mol_fail_hidden;
504
- })($ || ($ = {}));
505
-
506
608
  ;
507
609
  "use strict";
508
610
 
@@ -997,7 +1099,7 @@ var $;
997
1099
  if (left instanceof RegExp)
998
1100
  return left.source === right.source && left.flags === right.flags;
999
1101
  if (left instanceof Error)
1000
- return left.message === right.message && left.stack === right.stack;
1102
+ return left.message === right.message && $mol_compare_deep(left.stack, right.stack);
1001
1103
  let left_cache = $.$mol_compare_deep_cache.get(left);
1002
1104
  if (left_cache) {
1003
1105
  const right_cache = left_cache.get(right);
@@ -1283,6 +1385,33 @@ var $;
1283
1385
  $.$mol_fail_catch = $mol_fail_catch;
1284
1386
  })($ || ($ = {}));
1285
1387
 
1388
+ ;
1389
+ "use strict";
1390
+ var $;
1391
+ (function ($) {
1392
+ let error;
1393
+ let result;
1394
+ let handler;
1395
+ function $mol_try(handler2) {
1396
+ handler = handler2;
1397
+ error = undefined;
1398
+ result = undefined;
1399
+ window.dispatchEvent(new Event('$mol_try'));
1400
+ const error2 = error;
1401
+ const result2 = result;
1402
+ error = undefined;
1403
+ result = undefined;
1404
+ return error2 || result2;
1405
+ }
1406
+ $.$mol_try = $mol_try;
1407
+ self.addEventListener('$mol_try', (event) => {
1408
+ result = handler();
1409
+ }, true);
1410
+ self.addEventListener('error', (event) => {
1411
+ error = event.error;
1412
+ }, true);
1413
+ })($ || ($ = {}));
1414
+
1286
1415
  ;
1287
1416
  "use strict";
1288
1417
  var $;
@@ -1292,7 +1421,7 @@ var $;
1292
1421
  return false;
1293
1422
  if (!$mol_fail_catch(error))
1294
1423
  return false;
1295
- console.error(error);
1424
+ $mol_try(() => { $mol_fail_hidden(error); });
1296
1425
  return true;
1297
1426
  }
1298
1427
  $.$mol_fail_log = $mol_fail_log;
package/web.test.js CHANGED
@@ -783,7 +783,7 @@ var $;
783
783
  catch (error) {
784
784
  $.$mol_fail = fail;
785
785
  if (typeof ErrorRight === 'string') {
786
- $mol_assert_equal(error.message, ErrorRight);
786
+ $mol_assert_equal(error.message ?? error, ErrorRight);
787
787
  }
788
788
  else {
789
789
  $mol_assert_equal(error instanceof ErrorRight, true);
@@ -807,7 +807,7 @@ var $;
807
807
  continue;
808
808
  if (!$mol_compare_deep(args[i], args[j]))
809
809
  continue;
810
- $mol_fail(new Error(`args[${i}] = args[${j}] = ${print(args[i])}`));
810
+ return $mol_fail(new Error(`Uniquesess assertion failure`, { cause: { [i]: args[i], [i]: args[i] } }));
811
811
  }
812
812
  }
813
813
  }
@@ -818,29 +818,10 @@ var $;
818
818
  continue;
819
819
  if (args[0] instanceof $mol_dom_context.Element && args[i] instanceof $mol_dom_context.Element && args[0].outerHTML === args[i].outerHTML)
820
820
  continue;
821
- return $mol_fail(new Error(`args[0] ≠ args[${i}]\n${print(args[0])}\n---\n${print(args[i])}`));
821
+ return $mol_fail(new Error(`Equality assertion failure`, { cause: { 0: args[0], [i]: args[i] } }));
822
822
  }
823
823
  }
824
824
  $.$mol_assert_equal = $mol_assert_equal;
825
- const print = (val) => {
826
- if (!val)
827
- return val;
828
- if (typeof val === 'bigint')
829
- return String(val) + 'n';
830
- if (typeof val === 'symbol')
831
- return `Symbol(${val.description})`;
832
- if (typeof val !== 'object')
833
- return val;
834
- if ('outerHTML' in val)
835
- return val.outerHTML;
836
- try {
837
- return JSON.stringify(val, (k, v) => typeof v === 'bigint' ? String(v) : v, '\t');
838
- }
839
- catch (error) {
840
- console.error(error);
841
- return val;
842
- }
843
- };
844
825
  })($ || ($ = {}));
845
826
 
846
827
  ;
@@ -1247,6 +1228,17 @@ var $;
1247
1228
  ;
1248
1229
  "use strict";
1249
1230
 
1231
+ ;
1232
+ "use strict";
1233
+ var $;
1234
+ (function ($) {
1235
+ $mol_test({
1236
+ 'return result without errors'() {
1237
+ $mol_assert_equal($mol_try(() => false), false);
1238
+ },
1239
+ });
1240
+ })($ || ($ = {}));
1241
+
1250
1242
  ;
1251
1243
  "use strict";
1252
1244
  var $;