mol_conform 0.0.34 → 0.0.35
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 +136 -27
- package/node.test.js.map +1 -1
- package/package.json +1 -1
- package/web.test.js +4 -23
- package/web.test.js.map +1 -1
package/node.test.js
CHANGED
|
@@ -274,6 +274,32 @@ var $;
|
|
|
274
274
|
$.$mol_fail_catch = $mol_fail_catch;
|
|
275
275
|
})($ || ($ = {}));
|
|
276
276
|
|
|
277
|
+
;
|
|
278
|
+
"use strict";
|
|
279
|
+
var $;
|
|
280
|
+
(function ($) {
|
|
281
|
+
function $mol_try(handler) {
|
|
282
|
+
try {
|
|
283
|
+
return handler();
|
|
284
|
+
}
|
|
285
|
+
catch (error) {
|
|
286
|
+
return error;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
$.$mol_try = $mol_try;
|
|
290
|
+
})($ || ($ = {}));
|
|
291
|
+
|
|
292
|
+
;
|
|
293
|
+
"use strict";
|
|
294
|
+
var $;
|
|
295
|
+
(function ($) {
|
|
296
|
+
$mol_test({
|
|
297
|
+
'return result without errors'() {
|
|
298
|
+
$mol_assert_equal($mol_try(() => false), false);
|
|
299
|
+
},
|
|
300
|
+
});
|
|
301
|
+
})($ || ($ = {}));
|
|
302
|
+
|
|
277
303
|
;
|
|
278
304
|
"use strict";
|
|
279
305
|
var $;
|
|
@@ -283,7 +309,7 @@ var $;
|
|
|
283
309
|
return false;
|
|
284
310
|
if (!$mol_fail_catch(error))
|
|
285
311
|
return false;
|
|
286
|
-
|
|
312
|
+
$mol_try(() => { $mol_fail_hidden(error); });
|
|
287
313
|
return true;
|
|
288
314
|
}
|
|
289
315
|
$.$mol_fail_log = $mol_fail_log;
|
|
@@ -421,7 +447,7 @@ var $;
|
|
|
421
447
|
get: () => stack_get() + '\n' + [
|
|
422
448
|
this.cause ?? 'no cause',
|
|
423
449
|
...this.errors.flatMap(e => [
|
|
424
|
-
e.stack,
|
|
450
|
+
String(e.stack),
|
|
425
451
|
...e instanceof $mol_error_mix || !e.cause ? [] : [e.cause]
|
|
426
452
|
])
|
|
427
453
|
].map(frame_normalize).join('\n')
|
|
@@ -790,6 +816,17 @@ var $;
|
|
|
790
816
|
$.$mol_dev_format_register = $mol_dev_format_register;
|
|
791
817
|
$.$mol_dev_format_head = Symbol('$mol_dev_format_head');
|
|
792
818
|
$.$mol_dev_format_body = Symbol('$mol_dev_format_body');
|
|
819
|
+
function $mol_dev_format_button(label, click) {
|
|
820
|
+
return $mol_dev_format_auto({
|
|
821
|
+
[$.$mol_dev_format_head]() {
|
|
822
|
+
return $mol_dev_format_span({ color: 'cornflowerblue' }, label);
|
|
823
|
+
},
|
|
824
|
+
[$.$mol_dev_format_body]() {
|
|
825
|
+
Promise.resolve().then(click);
|
|
826
|
+
return $mol_dev_format_span({});
|
|
827
|
+
}
|
|
828
|
+
});
|
|
829
|
+
}
|
|
793
830
|
$mol_dev_format_register({
|
|
794
831
|
header: (val, config = false) => {
|
|
795
832
|
if (config)
|
|
@@ -807,13 +844,41 @@ var $;
|
|
|
807
844
|
if (typeof val === 'function') {
|
|
808
845
|
return $mol_dev_format_native(val);
|
|
809
846
|
}
|
|
847
|
+
if (Error.isError(val)) {
|
|
848
|
+
return $mol_dev_format_span({}, $mol_dev_format_native(val), ' ', $mol_dev_format_button('throw', () => $mol_fail_hidden(val)));
|
|
849
|
+
}
|
|
850
|
+
if (val instanceof Promise) {
|
|
851
|
+
return $.$mol_dev_format_shade($mol_dev_format_native(val), ' ', val[Symbol.toStringTag] ?? '');
|
|
852
|
+
}
|
|
810
853
|
if (Symbol.toStringTag in val) {
|
|
811
854
|
return $mol_dev_format_native(val);
|
|
812
855
|
}
|
|
813
856
|
return null;
|
|
814
857
|
},
|
|
815
|
-
hasBody: val =>
|
|
816
|
-
|
|
858
|
+
hasBody: (val, config = false) => {
|
|
859
|
+
if (config)
|
|
860
|
+
return false;
|
|
861
|
+
if (!val)
|
|
862
|
+
return false;
|
|
863
|
+
if (val[$.$mol_dev_format_body])
|
|
864
|
+
return true;
|
|
865
|
+
return false;
|
|
866
|
+
},
|
|
867
|
+
body: (val, config = false) => {
|
|
868
|
+
if (config)
|
|
869
|
+
return null;
|
|
870
|
+
if (!val)
|
|
871
|
+
return null;
|
|
872
|
+
if ($.$mol_dev_format_body in val) {
|
|
873
|
+
try {
|
|
874
|
+
return val[$.$mol_dev_format_body]();
|
|
875
|
+
}
|
|
876
|
+
catch (error) {
|
|
877
|
+
return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), '');
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
return null;
|
|
881
|
+
},
|
|
817
882
|
});
|
|
818
883
|
function $mol_dev_format_native(obj) {
|
|
819
884
|
if (typeof obj === 'undefined')
|
|
@@ -879,6 +944,69 @@ var $;
|
|
|
879
944
|
$.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, {
|
|
880
945
|
'margin-left': '13px'
|
|
881
946
|
});
|
|
947
|
+
class Stack extends Array {
|
|
948
|
+
toString() {
|
|
949
|
+
return this.join('\n');
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
class Call extends Object {
|
|
953
|
+
type;
|
|
954
|
+
function;
|
|
955
|
+
method;
|
|
956
|
+
eval;
|
|
957
|
+
source;
|
|
958
|
+
offset;
|
|
959
|
+
pos;
|
|
960
|
+
object;
|
|
961
|
+
flags;
|
|
962
|
+
[Symbol.toStringTag];
|
|
963
|
+
constructor(call) {
|
|
964
|
+
super();
|
|
965
|
+
this.type = call.getTypeName() ?? '';
|
|
966
|
+
this.function = call.getFunctionName() ?? '';
|
|
967
|
+
this.method = call.getMethodName() ?? '';
|
|
968
|
+
if (this.method === this.function)
|
|
969
|
+
this.method = '';
|
|
970
|
+
this.pos = [call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0];
|
|
971
|
+
this.eval = call.getEvalOrigin() ?? '';
|
|
972
|
+
this.source = call.getScriptNameOrSourceURL() ?? '';
|
|
973
|
+
this.object = call.getThis();
|
|
974
|
+
this.offset = call.getPosition();
|
|
975
|
+
const flags = [];
|
|
976
|
+
if (call.isAsync())
|
|
977
|
+
flags.push('async');
|
|
978
|
+
if (call.isConstructor())
|
|
979
|
+
flags.push('constructor');
|
|
980
|
+
if (call.isEval())
|
|
981
|
+
flags.push('eval');
|
|
982
|
+
if (call.isNative())
|
|
983
|
+
flags.push('native');
|
|
984
|
+
if (call.isPromiseAll())
|
|
985
|
+
flags.push('PromiseAll');
|
|
986
|
+
if (call.isToplevel())
|
|
987
|
+
flags.push('top');
|
|
988
|
+
this.flags = flags;
|
|
989
|
+
const type = this.type ? this.type + '.' : '';
|
|
990
|
+
const func = this.function || '<anon>';
|
|
991
|
+
const method = this.method ? ' [' + this.method + '] ' : '';
|
|
992
|
+
this[Symbol.toStringTag] = `${type}${func}${method}`;
|
|
993
|
+
}
|
|
994
|
+
[Symbol.toPrimitive]() {
|
|
995
|
+
return this.toString();
|
|
996
|
+
}
|
|
997
|
+
toString() {
|
|
998
|
+
const object = this.object || '';
|
|
999
|
+
const label = this[Symbol.toStringTag];
|
|
1000
|
+
const source = `${this.source}:${this.pos.join(':')} #${this.offset}`;
|
|
1001
|
+
return `\tat ${object}${label} (${source})`;
|
|
1002
|
+
}
|
|
1003
|
+
[$.$mol_dev_format_head]() {
|
|
1004
|
+
return $.$mol_dev_format_div({}, $mol_dev_format_native(this), $.$mol_dev_format_shade(' '), ...this.object ? [
|
|
1005
|
+
$mol_dev_format_native(this.object),
|
|
1006
|
+
] : [], ...this.method ? [$.$mol_dev_format_shade(' ', ' [', this.method, ']')] : [], $.$mol_dev_format_shade(' ', this.flags.join(', ')));
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
Error.prepareStackTrace ??= (error, stack) => new Stack(...stack.map(call => new Call(call)));
|
|
882
1010
|
})($ || ($ = {}));
|
|
883
1011
|
|
|
884
1012
|
;
|
|
@@ -2843,7 +2971,7 @@ var $;
|
|
|
2843
2971
|
if (left instanceof RegExp)
|
|
2844
2972
|
return left.source === right.source && left.flags === right.flags;
|
|
2845
2973
|
if (left instanceof Error)
|
|
2846
|
-
return left.message === right.message && left.stack
|
|
2974
|
+
return left.message === right.message && $mol_compare_deep(left.stack, right.stack);
|
|
2847
2975
|
let left_cache = $.$mol_compare_deep_cache.get(left);
|
|
2848
2976
|
if (left_cache) {
|
|
2849
2977
|
const right_cache = left_cache.get(right);
|
|
@@ -3105,7 +3233,7 @@ var $;
|
|
|
3105
3233
|
catch (error) {
|
|
3106
3234
|
$.$mol_fail = fail;
|
|
3107
3235
|
if (typeof ErrorRight === 'string') {
|
|
3108
|
-
$mol_assert_equal(error.message, ErrorRight);
|
|
3236
|
+
$mol_assert_equal(error.message ?? error, ErrorRight);
|
|
3109
3237
|
}
|
|
3110
3238
|
else {
|
|
3111
3239
|
$mol_assert_equal(error instanceof ErrorRight, true);
|
|
@@ -3129,7 +3257,7 @@ var $;
|
|
|
3129
3257
|
continue;
|
|
3130
3258
|
if (!$mol_compare_deep(args[i], args[j]))
|
|
3131
3259
|
continue;
|
|
3132
|
-
$mol_fail(new Error(`
|
|
3260
|
+
return $mol_fail(new Error(`Uniquesess assertion failure`, { cause: { [i]: args[i], [i]: args[i] } }));
|
|
3133
3261
|
}
|
|
3134
3262
|
}
|
|
3135
3263
|
}
|
|
@@ -3140,29 +3268,10 @@ var $;
|
|
|
3140
3268
|
continue;
|
|
3141
3269
|
if (args[0] instanceof $mol_dom_context.Element && args[i] instanceof $mol_dom_context.Element && args[0].outerHTML === args[i].outerHTML)
|
|
3142
3270
|
continue;
|
|
3143
|
-
return $mol_fail(new Error(`args[0]
|
|
3271
|
+
return $mol_fail(new Error(`Equality assertion failure`, { cause: { 0: args[0], [i]: args[i] } }));
|
|
3144
3272
|
}
|
|
3145
3273
|
}
|
|
3146
3274
|
$.$mol_assert_equal = $mol_assert_equal;
|
|
3147
|
-
const print = (val) => {
|
|
3148
|
-
if (!val)
|
|
3149
|
-
return val;
|
|
3150
|
-
if (typeof val === 'bigint')
|
|
3151
|
-
return String(val) + 'n';
|
|
3152
|
-
if (typeof val === 'symbol')
|
|
3153
|
-
return `Symbol(${val.description})`;
|
|
3154
|
-
if (typeof val !== 'object')
|
|
3155
|
-
return val;
|
|
3156
|
-
if ('outerHTML' in val)
|
|
3157
|
-
return val.outerHTML;
|
|
3158
|
-
try {
|
|
3159
|
-
return JSON.stringify(val, (k, v) => typeof v === 'bigint' ? String(v) : v, '\t');
|
|
3160
|
-
}
|
|
3161
|
-
catch (error) {
|
|
3162
|
-
console.error(error);
|
|
3163
|
-
return val;
|
|
3164
|
-
}
|
|
3165
|
-
};
|
|
3166
3275
|
})($ || ($ = {}));
|
|
3167
3276
|
|
|
3168
3277
|
;
|