mol_wire_lib 1.0.1503 → 1.0.1505

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
 
@@ -908,7 +1010,7 @@ var $;
908
1010
  if (left instanceof RegExp)
909
1011
  return left.source === right.source && left.flags === right.flags;
910
1012
  if (left instanceof Error)
911
- return left.message === right.message && left.stack === right.stack;
1013
+ return left.message === right.message && $mol_compare_deep(left.stack, right.stack);
912
1014
  let left_cache = $.$mol_compare_deep_cache.get(left);
913
1015
  if (left_cache) {
914
1016
  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
@@ -858,7 +858,7 @@ var $;
858
858
  catch (error) {
859
859
  $.$mol_fail = fail;
860
860
  if (typeof ErrorRight === 'string') {
861
- $mol_assert_equal(error.message, ErrorRight);
861
+ $mol_assert_equal(error.message ?? error, ErrorRight);
862
862
  }
863
863
  else {
864
864
  $mol_assert_equal(error instanceof ErrorRight, true);
@@ -882,7 +882,7 @@ var $;
882
882
  continue;
883
883
  if (!$mol_compare_deep(args[i], args[j]))
884
884
  continue;
885
- $mol_fail(new Error(`args[${i}] = args[${j}] = ${print(args[i])}`));
885
+ return $mol_fail(new Error(`Uniquesess assertion failure`, { cause: { [i]: args[i], [i]: args[i] } }));
886
886
  }
887
887
  }
888
888
  }
@@ -893,29 +893,10 @@ var $;
893
893
  continue;
894
894
  if (args[0] instanceof $mol_dom_context.Element && args[i] instanceof $mol_dom_context.Element && args[0].outerHTML === args[i].outerHTML)
895
895
  continue;
896
- return $mol_fail(new Error(`args[0] ≠ args[${i}]\n${print(args[0])}\n---\n${print(args[i])}`));
896
+ return $mol_fail(new Error(`Equality assertion failure`, { cause: { 0: args[0], [i]: args[i] } }));
897
897
  }
898
898
  }
899
899
  $.$mol_assert_equal = $mol_assert_equal;
900
- const print = (val) => {
901
- if (!val)
902
- return val;
903
- if (typeof val === 'bigint')
904
- return String(val) + 'n';
905
- if (typeof val === 'symbol')
906
- return `Symbol(${val.description})`;
907
- if (typeof val !== 'object')
908
- return val;
909
- if ('outerHTML' in val)
910
- return val.outerHTML;
911
- try {
912
- return JSON.stringify(val, (k, v) => typeof v === 'bigint' ? String(v) : v, '\t');
913
- }
914
- catch (error) {
915
- console.error(error);
916
- return val;
917
- }
918
- };
919
900
  })($ || ($ = {}));
920
901
 
921
902
  ;
@@ -1322,6 +1303,17 @@ var $;
1322
1303
  ;
1323
1304
  "use strict";
1324
1305
 
1306
+ ;
1307
+ "use strict";
1308
+ var $;
1309
+ (function ($) {
1310
+ $mol_test({
1311
+ 'return result without errors'() {
1312
+ $mol_assert_equal($mol_try(() => false), false);
1313
+ },
1314
+ });
1315
+ })($ || ($ = {}));
1316
+
1325
1317
  ;
1326
1318
  "use strict";
1327
1319
  var $;