mol_dump_lib 0.0.965 → 0.0.967
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/manifest.json +10 -0
- package/node.d.ts +6 -1
- package/node.d.ts.map +1 -1
- package/node.deps.json +1 -1
- package/node.js +53 -31
- package/node.js.map +1 -1
- package/node.mjs +53 -31
- package/node.test.js +68 -40
- package/node.test.js.map +1 -1
- package/package.json +3 -2
- package/web.d.ts +6 -1
- package/web.d.ts.map +1 -1
- package/web.deps.json +1 -1
- package/web.js +53 -31
- package/web.js.map +1 -1
- package/web.mjs +53 -31
- package/web.test.js +15 -9
- package/web.test.js.map +1 -1
package/node.mjs
CHANGED
|
@@ -371,6 +371,14 @@ var $;
|
|
|
371
371
|
;
|
|
372
372
|
"use strict";
|
|
373
373
|
|
|
374
|
+
;
|
|
375
|
+
"use strict";
|
|
376
|
+
var $;
|
|
377
|
+
(function ($) {
|
|
378
|
+
$.$mol_key_handle = Symbol.for('$mol_key_handle');
|
|
379
|
+
$.$mol_key_store = new WeakMap();
|
|
380
|
+
})($ || ($ = {}));
|
|
381
|
+
|
|
374
382
|
;
|
|
375
383
|
"use strict";
|
|
376
384
|
var $;
|
|
@@ -407,6 +415,9 @@ var $;
|
|
|
407
415
|
static toJSON() {
|
|
408
416
|
return this.toString();
|
|
409
417
|
}
|
|
418
|
+
static [$mol_key_handle]() {
|
|
419
|
+
return this.toString();
|
|
420
|
+
}
|
|
410
421
|
destructor() { }
|
|
411
422
|
static destructor() { }
|
|
412
423
|
[Symbol.dispose]() {
|
|
@@ -2398,46 +2409,50 @@ var $;
|
|
|
2398
2409
|
"use strict";
|
|
2399
2410
|
var $;
|
|
2400
2411
|
(function ($) {
|
|
2401
|
-
$.$mol_key_store = new WeakMap();
|
|
2402
2412
|
const TypedArray = Object.getPrototypeOf(Uint8Array);
|
|
2403
2413
|
function $mol_key(value) {
|
|
2404
|
-
|
|
2405
|
-
return value.toString() + 'n';
|
|
2406
|
-
if (typeof value === 'symbol')
|
|
2407
|
-
return value.description;
|
|
2408
|
-
if (!value)
|
|
2409
|
-
return JSON.stringify(value);
|
|
2410
|
-
if (typeof value !== 'object' && typeof value !== 'function')
|
|
2411
|
-
return JSON.stringify(value);
|
|
2412
|
-
return JSON.stringify(value, (field, value) => {
|
|
2414
|
+
primitives: {
|
|
2413
2415
|
if (typeof value === 'bigint')
|
|
2414
2416
|
return value.toString() + 'n';
|
|
2415
2417
|
if (typeof value === 'symbol')
|
|
2416
|
-
return value.description
|
|
2418
|
+
return `Symbol(${value.description})`;
|
|
2417
2419
|
if (!value)
|
|
2418
|
-
return value;
|
|
2420
|
+
return JSON.stringify(value);
|
|
2419
2421
|
if (typeof value !== 'object' && typeof value !== 'function')
|
|
2420
|
-
return value;
|
|
2422
|
+
return JSON.stringify(value);
|
|
2423
|
+
}
|
|
2424
|
+
caching: {
|
|
2425
|
+
let key = $mol_key_store.get(value);
|
|
2426
|
+
if (key)
|
|
2427
|
+
return key;
|
|
2428
|
+
}
|
|
2429
|
+
objects: {
|
|
2430
|
+
if (value instanceof TypedArray) {
|
|
2431
|
+
return `${value[Symbol.toStringTag]}([${[...value].map(v => $mol_key(v))}])`;
|
|
2432
|
+
}
|
|
2421
2433
|
if (Array.isArray(value))
|
|
2422
|
-
return value
|
|
2423
|
-
const proto = Reflect.getPrototypeOf(value);
|
|
2424
|
-
if (!proto)
|
|
2425
|
-
return value;
|
|
2426
|
-
if (Reflect.getPrototypeOf(proto) === null)
|
|
2427
|
-
return value;
|
|
2428
|
-
if ('toJSON' in value)
|
|
2429
|
-
return value;
|
|
2434
|
+
return `[${value.map(v => $mol_key(v))}]`;
|
|
2430
2435
|
if (value instanceof RegExp)
|
|
2431
2436
|
return value.toString();
|
|
2432
|
-
if (value instanceof
|
|
2433
|
-
return
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2437
|
+
if (value instanceof Date)
|
|
2438
|
+
return `Date(${value.valueOf()})`;
|
|
2439
|
+
}
|
|
2440
|
+
structures: {
|
|
2441
|
+
const proto = Reflect.getPrototypeOf(value);
|
|
2442
|
+
if (!proto || !Reflect.getPrototypeOf(proto)) {
|
|
2443
|
+
return `{${Object.entries(value).map(([k, v]) => JSON.stringify(k) + ':' + $mol_key(v))}}`;
|
|
2444
|
+
}
|
|
2445
|
+
}
|
|
2446
|
+
handlers: {
|
|
2447
|
+
if ($mol_key_handle in value) {
|
|
2448
|
+
return value[$mol_key_handle]();
|
|
2449
|
+
}
|
|
2450
|
+
}
|
|
2451
|
+
containers: {
|
|
2452
|
+
const key = JSON.stringify('#' + $mol_guid());
|
|
2453
|
+
$mol_key_store.set(value, key);
|
|
2439
2454
|
return key;
|
|
2440
|
-
}
|
|
2455
|
+
}
|
|
2441
2456
|
}
|
|
2442
2457
|
$.$mol_key = $mol_key;
|
|
2443
2458
|
})($ || ($ = {}));
|
|
@@ -2596,8 +2611,15 @@ var $;
|
|
|
2596
2611
|
(this.host ?? this.task)[this.field()] = null;
|
|
2597
2612
|
}
|
|
2598
2613
|
else {
|
|
2599
|
-
;
|
|
2600
|
-
(this.host ?? this.task)[this.field()]
|
|
2614
|
+
const key = $mol_key(this.args[0]);
|
|
2615
|
+
const map = (this.host ?? this.task)[this.field()];
|
|
2616
|
+
if (!map.has(key))
|
|
2617
|
+
this.$.$mol_log3_warn({
|
|
2618
|
+
place: this,
|
|
2619
|
+
message: 'Absent key on destruction',
|
|
2620
|
+
hint: 'Check for $mol_key(key) is not changed',
|
|
2621
|
+
});
|
|
2622
|
+
map.delete(key);
|
|
2601
2623
|
}
|
|
2602
2624
|
}
|
|
2603
2625
|
put(next) {
|
package/node.test.js
CHANGED
|
@@ -362,6 +362,14 @@ var $;
|
|
|
362
362
|
;
|
|
363
363
|
"use strict";
|
|
364
364
|
|
|
365
|
+
;
|
|
366
|
+
"use strict";
|
|
367
|
+
var $;
|
|
368
|
+
(function ($) {
|
|
369
|
+
$.$mol_key_handle = Symbol.for('$mol_key_handle');
|
|
370
|
+
$.$mol_key_store = new WeakMap();
|
|
371
|
+
})($ || ($ = {}));
|
|
372
|
+
|
|
365
373
|
;
|
|
366
374
|
"use strict";
|
|
367
375
|
var $;
|
|
@@ -398,6 +406,9 @@ var $;
|
|
|
398
406
|
static toJSON() {
|
|
399
407
|
return this.toString();
|
|
400
408
|
}
|
|
409
|
+
static [$mol_key_handle]() {
|
|
410
|
+
return this.toString();
|
|
411
|
+
}
|
|
401
412
|
destructor() { }
|
|
402
413
|
static destructor() { }
|
|
403
414
|
[Symbol.dispose]() {
|
|
@@ -2389,46 +2400,50 @@ var $;
|
|
|
2389
2400
|
"use strict";
|
|
2390
2401
|
var $;
|
|
2391
2402
|
(function ($) {
|
|
2392
|
-
$.$mol_key_store = new WeakMap();
|
|
2393
2403
|
const TypedArray = Object.getPrototypeOf(Uint8Array);
|
|
2394
2404
|
function $mol_key(value) {
|
|
2395
|
-
|
|
2396
|
-
return value.toString() + 'n';
|
|
2397
|
-
if (typeof value === 'symbol')
|
|
2398
|
-
return value.description;
|
|
2399
|
-
if (!value)
|
|
2400
|
-
return JSON.stringify(value);
|
|
2401
|
-
if (typeof value !== 'object' && typeof value !== 'function')
|
|
2402
|
-
return JSON.stringify(value);
|
|
2403
|
-
return JSON.stringify(value, (field, value) => {
|
|
2405
|
+
primitives: {
|
|
2404
2406
|
if (typeof value === 'bigint')
|
|
2405
2407
|
return value.toString() + 'n';
|
|
2406
2408
|
if (typeof value === 'symbol')
|
|
2407
|
-
return value.description
|
|
2409
|
+
return `Symbol(${value.description})`;
|
|
2408
2410
|
if (!value)
|
|
2409
|
-
return value;
|
|
2411
|
+
return JSON.stringify(value);
|
|
2410
2412
|
if (typeof value !== 'object' && typeof value !== 'function')
|
|
2411
|
-
return value;
|
|
2413
|
+
return JSON.stringify(value);
|
|
2414
|
+
}
|
|
2415
|
+
caching: {
|
|
2416
|
+
let key = $mol_key_store.get(value);
|
|
2417
|
+
if (key)
|
|
2418
|
+
return key;
|
|
2419
|
+
}
|
|
2420
|
+
objects: {
|
|
2421
|
+
if (value instanceof TypedArray) {
|
|
2422
|
+
return `${value[Symbol.toStringTag]}([${[...value].map(v => $mol_key(v))}])`;
|
|
2423
|
+
}
|
|
2412
2424
|
if (Array.isArray(value))
|
|
2413
|
-
return value
|
|
2414
|
-
const proto = Reflect.getPrototypeOf(value);
|
|
2415
|
-
if (!proto)
|
|
2416
|
-
return value;
|
|
2417
|
-
if (Reflect.getPrototypeOf(proto) === null)
|
|
2418
|
-
return value;
|
|
2419
|
-
if ('toJSON' in value)
|
|
2420
|
-
return value;
|
|
2425
|
+
return `[${value.map(v => $mol_key(v))}]`;
|
|
2421
2426
|
if (value instanceof RegExp)
|
|
2422
2427
|
return value.toString();
|
|
2423
|
-
if (value instanceof
|
|
2424
|
-
return
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2428
|
+
if (value instanceof Date)
|
|
2429
|
+
return `Date(${value.valueOf()})`;
|
|
2430
|
+
}
|
|
2431
|
+
structures: {
|
|
2432
|
+
const proto = Reflect.getPrototypeOf(value);
|
|
2433
|
+
if (!proto || !Reflect.getPrototypeOf(proto)) {
|
|
2434
|
+
return `{${Object.entries(value).map(([k, v]) => JSON.stringify(k) + ':' + $mol_key(v))}}`;
|
|
2435
|
+
}
|
|
2436
|
+
}
|
|
2437
|
+
handlers: {
|
|
2438
|
+
if ($mol_key_handle in value) {
|
|
2439
|
+
return value[$mol_key_handle]();
|
|
2440
|
+
}
|
|
2441
|
+
}
|
|
2442
|
+
containers: {
|
|
2443
|
+
const key = JSON.stringify('#' + $mol_guid());
|
|
2444
|
+
$mol_key_store.set(value, key);
|
|
2430
2445
|
return key;
|
|
2431
|
-
}
|
|
2446
|
+
}
|
|
2432
2447
|
}
|
|
2433
2448
|
$.$mol_key = $mol_key;
|
|
2434
2449
|
})($ || ($ = {}));
|
|
@@ -2587,8 +2602,15 @@ var $;
|
|
|
2587
2602
|
(this.host ?? this.task)[this.field()] = null;
|
|
2588
2603
|
}
|
|
2589
2604
|
else {
|
|
2590
|
-
;
|
|
2591
|
-
(this.host ?? this.task)[this.field()]
|
|
2605
|
+
const key = $mol_key(this.args[0]);
|
|
2606
|
+
const map = (this.host ?? this.task)[this.field()];
|
|
2607
|
+
if (!map.has(key))
|
|
2608
|
+
this.$.$mol_log3_warn({
|
|
2609
|
+
place: this,
|
|
2610
|
+
message: 'Absent key on destruction',
|
|
2611
|
+
hint: 'Check for $mol_key(key) is not changed',
|
|
2612
|
+
});
|
|
2613
|
+
map.delete(key);
|
|
2592
2614
|
}
|
|
2593
2615
|
}
|
|
2594
2616
|
put(next) {
|
|
@@ -9978,9 +10000,9 @@ var $;
|
|
|
9978
10000
|
$mol_assert_equal($mol_key({ foo: [false] }), '{"foo":[false]}');
|
|
9979
10001
|
},
|
|
9980
10002
|
'Uint8Array'() {
|
|
9981
|
-
$mol_assert_equal($mol_key(new Uint8Array([1, 2])), '[1,2]');
|
|
9982
|
-
$mol_assert_equal($mol_key([new Uint8Array([1, 2])]), '[[1,2]]');
|
|
9983
|
-
$mol_assert_equal($mol_key({ foo: new Uint8Array([1, 2]) }), '{"foo":[1,2]}');
|
|
10003
|
+
$mol_assert_equal($mol_key(new Uint8Array([1, 2])), 'Uint8Array([1,2])');
|
|
10004
|
+
$mol_assert_equal($mol_key([new Uint8Array([1, 2])]), '[Uint8Array([1,2])]');
|
|
10005
|
+
$mol_assert_equal($mol_key({ foo: new Uint8Array([1, 2]) }), '{"foo":Uint8Array([1,2])}');
|
|
9984
10006
|
},
|
|
9985
10007
|
'Function'() {
|
|
9986
10008
|
const func = () => { };
|
|
@@ -10000,6 +10022,12 @@ var $;
|
|
|
10000
10022
|
$mol_assert_unique($mol_key(foo), $mol_key($mol_jsx("div", null, "bar")));
|
|
10001
10023
|
},
|
|
10002
10024
|
'Custom JSON representation'() {
|
|
10025
|
+
class User {
|
|
10026
|
+
toJSON() { return 'jin'; }
|
|
10027
|
+
}
|
|
10028
|
+
$mol_assert_unique([$mol_key(new User)], [$mol_key(new User)]);
|
|
10029
|
+
},
|
|
10030
|
+
'Custom key handler'() {
|
|
10003
10031
|
class User {
|
|
10004
10032
|
name;
|
|
10005
10033
|
age;
|
|
@@ -10007,15 +10035,15 @@ var $;
|
|
|
10007
10035
|
this.name = name;
|
|
10008
10036
|
this.age = age;
|
|
10009
10037
|
}
|
|
10010
|
-
|
|
10038
|
+
[$mol_key_handle]() { return `User(${JSON.stringify(this.name)})`; }
|
|
10011
10039
|
}
|
|
10012
|
-
$mol_assert_equal($mol_key(new User('jin', 18)), '
|
|
10040
|
+
$mol_assert_equal($mol_key([new User('jin', 16)]), $mol_key([new User('jin', 18)]), '[User("jin")]');
|
|
10013
10041
|
},
|
|
10014
10042
|
'Special native classes'() {
|
|
10015
|
-
$mol_assert_equal($mol_key(new Date('xyz')), '
|
|
10016
|
-
$mol_assert_equal($mol_key(new Date(
|
|
10017
|
-
$mol_assert_equal($mol_key(/./), '
|
|
10018
|
-
$mol_assert_equal($mol_key(/\./gimsu), '
|
|
10043
|
+
$mol_assert_equal($mol_key(new Date('xyz')), 'Date(NaN)');
|
|
10044
|
+
$mol_assert_equal($mol_key(new Date(12345)), 'Date(12345)');
|
|
10045
|
+
$mol_assert_equal($mol_key(/./), '/./');
|
|
10046
|
+
$mol_assert_equal($mol_key(/\./gimsu), '/\\./gimsu');
|
|
10019
10047
|
},
|
|
10020
10048
|
});
|
|
10021
10049
|
})($ || ($ = {}));
|