mol_db 0.0.158 → 0.0.162
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.d.ts +0 -255
- package/node.deps.json +1 -1
- package/node.esm.js +66 -66
- package/node.esm.js.map +1 -1
- package/node.js +66 -66
- package/node.js.map +1 -1
- package/node.test.js +292 -286
- package/node.test.js.map +1 -1
- package/package.json +1 -1
- package/test.html +2 -2
- package/web.d.ts +0 -119
- package/web.deps.json +1 -1
- package/web.esm.js +34 -34
- package/web.esm.js.map +1 -1
- package/web.js +34 -34
- package/web.js.map +1 -1
- package/web.test.js +180 -174
- package/web.test.js.map +1 -1
package/web.test.js
CHANGED
|
@@ -8,7 +8,7 @@ var $;
|
|
|
8
8
|
}
|
|
9
9
|
$.$mol_fail = $mol_fail;
|
|
10
10
|
})($ || ($ = {}));
|
|
11
|
-
//fail.
|
|
11
|
+
//mol/fail/fail.ts
|
|
12
12
|
;
|
|
13
13
|
"use strict";
|
|
14
14
|
var $;
|
|
@@ -18,7 +18,7 @@ var $;
|
|
|
18
18
|
}
|
|
19
19
|
$.$mol_fail_hidden = $mol_fail_hidden;
|
|
20
20
|
})($ || ($ = {}));
|
|
21
|
-
//hidden.
|
|
21
|
+
//mol/fail/hidden/hidden.ts
|
|
22
22
|
;
|
|
23
23
|
"use strict";
|
|
24
24
|
var $;
|
|
@@ -36,12 +36,18 @@ var $;
|
|
|
36
36
|
$_1.$mol_test_all = [];
|
|
37
37
|
async function $mol_test_run() {
|
|
38
38
|
for (var test of $_1.$mol_test_all) {
|
|
39
|
-
let context = Object.create(
|
|
39
|
+
let context = Object.create($$);
|
|
40
40
|
for (let mock of $_1.$mol_test_mocks)
|
|
41
41
|
await mock(context);
|
|
42
|
-
|
|
42
|
+
const res = test(context);
|
|
43
|
+
if (res instanceof Promise) {
|
|
44
|
+
await new Promise((done, fail) => {
|
|
45
|
+
res.then(done, fail);
|
|
46
|
+
setTimeout(() => fail(new Error('Test timeout: ' + test.name)), 1000);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
43
49
|
}
|
|
44
|
-
|
|
50
|
+
$$.$mol_log3_done({
|
|
45
51
|
place: '$mol_test',
|
|
46
52
|
message: 'All tests passed',
|
|
47
53
|
count: $_1.$mol_test_all.length,
|
|
@@ -59,7 +65,7 @@ var $;
|
|
|
59
65
|
await $mol_test_run();
|
|
60
66
|
}
|
|
61
67
|
finally {
|
|
62
|
-
|
|
68
|
+
$$.$mol_test_complete();
|
|
63
69
|
}
|
|
64
70
|
}, 0);
|
|
65
71
|
}
|
|
@@ -72,10 +78,10 @@ var $;
|
|
|
72
78
|
for (let api of forbidden) {
|
|
73
79
|
context[api] = new Proxy(function () { }, {
|
|
74
80
|
get() {
|
|
75
|
-
$
|
|
81
|
+
$mol_fail_hidden(new Error(`${api} is forbidden in tests`));
|
|
76
82
|
},
|
|
77
83
|
apply() {
|
|
78
|
-
$
|
|
84
|
+
$mol_fail_hidden(new Error(`${api} is forbidden in tests`));
|
|
79
85
|
},
|
|
80
86
|
});
|
|
81
87
|
}
|
|
@@ -103,7 +109,7 @@ var $;
|
|
|
103
109
|
},
|
|
104
110
|
});
|
|
105
111
|
})($ || ($ = {}));
|
|
106
|
-
//test.test.
|
|
112
|
+
//mol/test/test.test.ts
|
|
107
113
|
;
|
|
108
114
|
"use strict";
|
|
109
115
|
var $;
|
|
@@ -112,7 +118,7 @@ var $;
|
|
|
112
118
|
}
|
|
113
119
|
$.$mol_test_complete = $mol_test_complete;
|
|
114
120
|
})($ || ($ = {}));
|
|
115
|
-
//test.web.test.
|
|
121
|
+
//mol/test/test.web.test.ts
|
|
116
122
|
;
|
|
117
123
|
"use strict";
|
|
118
124
|
var $;
|
|
@@ -123,7 +129,7 @@ var $;
|
|
|
123
129
|
for (let view of childNodes) {
|
|
124
130
|
if (view == null)
|
|
125
131
|
continue;
|
|
126
|
-
if (view instanceof
|
|
132
|
+
if (view instanceof $mol_dom_context.Node) {
|
|
127
133
|
while (true) {
|
|
128
134
|
if (!nextNode) {
|
|
129
135
|
el.appendChild(view);
|
|
@@ -154,7 +160,7 @@ var $;
|
|
|
154
160
|
nextNode = nextNode.nextSibling;
|
|
155
161
|
}
|
|
156
162
|
else {
|
|
157
|
-
const textNode =
|
|
163
|
+
const textNode = $mol_dom_context.document.createTextNode(String(view));
|
|
158
164
|
el.insertBefore(textNode, nextNode);
|
|
159
165
|
}
|
|
160
166
|
}
|
|
@@ -167,88 +173,88 @@ var $;
|
|
|
167
173
|
}
|
|
168
174
|
$.$mol_dom_render_children = $mol_dom_render_children;
|
|
169
175
|
})($ || ($ = {}));
|
|
170
|
-
//children.
|
|
176
|
+
//mol/dom/render/children/children.ts
|
|
171
177
|
;
|
|
172
178
|
"use strict";
|
|
173
|
-
//error.
|
|
179
|
+
//mol/type/error/error.ts
|
|
174
180
|
;
|
|
175
181
|
"use strict";
|
|
176
|
-
//assert.test.
|
|
182
|
+
//mol/type/assert/assert.test.ts
|
|
177
183
|
;
|
|
178
184
|
"use strict";
|
|
179
|
-
//assert.
|
|
185
|
+
//mol/type/assert/assert.ts
|
|
180
186
|
;
|
|
181
187
|
"use strict";
|
|
182
|
-
//deep.test.
|
|
188
|
+
//mol/type/partial/deep/deep.test.ts
|
|
183
189
|
;
|
|
184
190
|
"use strict";
|
|
185
|
-
//deep.
|
|
191
|
+
//mol/type/partial/deep/deep.ts
|
|
186
192
|
;
|
|
187
193
|
"use strict";
|
|
188
194
|
var $;
|
|
189
195
|
(function ($) {
|
|
190
|
-
|
|
196
|
+
$mol_test({
|
|
191
197
|
'Make empty div'() {
|
|
192
|
-
|
|
198
|
+
$mol_assert_equal(($mol_jsx("div", null)).outerHTML, '<div></div>');
|
|
193
199
|
},
|
|
194
200
|
'Define native field'() {
|
|
195
|
-
const dom =
|
|
196
|
-
|
|
197
|
-
|
|
201
|
+
const dom = $mol_jsx("input", { value: '123' });
|
|
202
|
+
$mol_assert_equal(dom.outerHTML, '<input value="123">');
|
|
203
|
+
$mol_assert_equal(dom.value, '123');
|
|
198
204
|
},
|
|
199
205
|
'Define classes'() {
|
|
200
|
-
const dom =
|
|
201
|
-
|
|
206
|
+
const dom = $mol_jsx("div", { class: 'foo bar' });
|
|
207
|
+
$mol_assert_equal(dom.outerHTML, '<div class="foo bar"></div>');
|
|
202
208
|
},
|
|
203
209
|
'Define styles'() {
|
|
204
|
-
const dom =
|
|
205
|
-
|
|
210
|
+
const dom = $mol_jsx("div", { style: { color: 'red' } });
|
|
211
|
+
$mol_assert_equal(dom.outerHTML, '<div style="color: red;"></div>');
|
|
206
212
|
},
|
|
207
213
|
'Define dataset'() {
|
|
208
|
-
const dom =
|
|
209
|
-
|
|
214
|
+
const dom = $mol_jsx("div", { dataset: { foo: 'bar' } });
|
|
215
|
+
$mol_assert_equal(dom.outerHTML, '<div data-foo="bar"></div>');
|
|
210
216
|
},
|
|
211
217
|
'Define attributes'() {
|
|
212
|
-
const dom =
|
|
213
|
-
|
|
218
|
+
const dom = $mol_jsx("div", { lang: "ru", hidden: true });
|
|
219
|
+
$mol_assert_equal(dom.outerHTML, '<div lang="ru" hidden=""></div>');
|
|
214
220
|
},
|
|
215
221
|
'Define child nodes'() {
|
|
216
|
-
const dom =
|
|
222
|
+
const dom = $mol_jsx("div", null,
|
|
217
223
|
"hello",
|
|
218
|
-
|
|
224
|
+
$mol_jsx("strong", null, "world"),
|
|
219
225
|
"!");
|
|
220
|
-
|
|
226
|
+
$mol_assert_equal(dom.outerHTML, '<div>hello<strong>world</strong>!</div>');
|
|
221
227
|
},
|
|
222
228
|
'Function as component'() {
|
|
223
229
|
const Button = ({ hint }, target) => {
|
|
224
|
-
return
|
|
230
|
+
return $mol_jsx("button", { title: hint }, target());
|
|
225
231
|
};
|
|
226
|
-
const dom =
|
|
227
|
-
|
|
232
|
+
const dom = $mol_jsx(Button, { id: "/foo", hint: "click me" }, () => 'hey!');
|
|
233
|
+
$mol_assert_equal(dom.outerHTML, '<button title="click me" id="/foo">hey!</button>');
|
|
228
234
|
},
|
|
229
235
|
'Nested guid generation'() {
|
|
230
236
|
const Foo = () => {
|
|
231
|
-
return
|
|
232
|
-
|
|
233
|
-
|
|
237
|
+
return $mol_jsx("div", null,
|
|
238
|
+
$mol_jsx(Bar, { id: "/bar" },
|
|
239
|
+
$mol_jsx("img", { id: "/icon" })));
|
|
234
240
|
};
|
|
235
241
|
const Bar = (props, icon) => {
|
|
236
|
-
return
|
|
242
|
+
return $mol_jsx("span", null, icon);
|
|
237
243
|
};
|
|
238
|
-
const dom =
|
|
239
|
-
|
|
244
|
+
const dom = $mol_jsx(Foo, { id: "/foo" });
|
|
245
|
+
$mol_assert_equal(dom.outerHTML, '<div id="/foo"><span id="/foo/bar"><img id="/foo/icon"></span></div>');
|
|
240
246
|
},
|
|
241
247
|
'Fail on non unique ids'() {
|
|
242
248
|
const App = () => {
|
|
243
|
-
return
|
|
244
|
-
|
|
245
|
-
|
|
249
|
+
return $mol_jsx("div", null,
|
|
250
|
+
$mol_jsx("span", { id: "/bar" }),
|
|
251
|
+
$mol_jsx("span", { id: "/bar" }));
|
|
246
252
|
};
|
|
247
|
-
|
|
253
|
+
$mol_assert_fail(() => $mol_jsx(App, { id: "/foo" }), 'JSX already has tag with id "/bar"');
|
|
248
254
|
},
|
|
249
255
|
});
|
|
250
256
|
})($ || ($ = {}));
|
|
251
|
-
//jsx.test.
|
|
257
|
+
//mol/jsx/jsx.test.tsx
|
|
252
258
|
;
|
|
253
259
|
"use strict";
|
|
254
260
|
var $;
|
|
@@ -257,15 +263,15 @@ var $;
|
|
|
257
263
|
$.$mol_jsx_booked = null;
|
|
258
264
|
$.$mol_jsx_document = {
|
|
259
265
|
getElementById: () => null,
|
|
260
|
-
createElementNS: (space, name) =>
|
|
261
|
-
createDocumentFragment: () =>
|
|
266
|
+
createElementNS: (space, name) => $mol_dom_context.document.createElementNS(space, name),
|
|
267
|
+
createDocumentFragment: () => $mol_dom_context.document.createDocumentFragment(),
|
|
262
268
|
};
|
|
263
269
|
$.$mol_jsx_frag = '';
|
|
264
270
|
function $mol_jsx(Elem, props, ...childNodes) {
|
|
265
271
|
const id = props && props.id || '';
|
|
266
272
|
if (Elem && $.$mol_jsx_booked) {
|
|
267
273
|
if ($.$mol_jsx_booked.has(id)) {
|
|
268
|
-
|
|
274
|
+
$mol_fail(new Error(`JSX already has tag with id ${JSON.stringify(id)}`));
|
|
269
275
|
}
|
|
270
276
|
else {
|
|
271
277
|
$.$mol_jsx_booked.add(id);
|
|
@@ -304,7 +310,7 @@ var $;
|
|
|
304
310
|
? $.$mol_jsx_document.createElementNS(props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem)
|
|
305
311
|
: $.$mol_jsx_document.createDocumentFragment();
|
|
306
312
|
}
|
|
307
|
-
|
|
313
|
+
$mol_dom_render_children(node, [].concat(...childNodes));
|
|
308
314
|
if (!Elem)
|
|
309
315
|
return node;
|
|
310
316
|
for (const key in props) {
|
|
@@ -330,77 +336,77 @@ var $;
|
|
|
330
336
|
}
|
|
331
337
|
$.$mol_jsx = $mol_jsx;
|
|
332
338
|
})($ || ($ = {}));
|
|
333
|
-
//jsx.
|
|
339
|
+
//mol/jsx/jsx.ts
|
|
334
340
|
;
|
|
335
341
|
"use strict";
|
|
336
342
|
var $;
|
|
337
343
|
(function ($) {
|
|
338
|
-
|
|
344
|
+
$mol_test({
|
|
339
345
|
'nulls & undefineds'() {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
346
|
+
$mol_assert_ok($mol_compare_deep(null, null));
|
|
347
|
+
$mol_assert_ok($mol_compare_deep(undefined, undefined));
|
|
348
|
+
$mol_assert_not($mol_compare_deep(undefined, null));
|
|
349
|
+
$mol_assert_not($mol_compare_deep({}, null));
|
|
344
350
|
},
|
|
345
351
|
'number'() {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
352
|
+
$mol_assert_ok($mol_compare_deep(1, 1));
|
|
353
|
+
$mol_assert_ok($mol_compare_deep(Number.NaN, Number.NaN));
|
|
354
|
+
$mol_assert_not($mol_compare_deep(1, 2));
|
|
355
|
+
$mol_assert_ok($mol_compare_deep(Object(1), Object(1)));
|
|
356
|
+
$mol_assert_not($mol_compare_deep(Object(1), Object(2)));
|
|
351
357
|
},
|
|
352
358
|
'POJO'() {
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
+
$mol_assert_ok($mol_compare_deep({}, {}));
|
|
360
|
+
$mol_assert_not($mol_compare_deep({ a: 1 }, { b: 2 }));
|
|
361
|
+
$mol_assert_not($mol_compare_deep({ a: 1 }, { a: 2 }));
|
|
362
|
+
$mol_assert_not($mol_compare_deep({}, { a: undefined }));
|
|
363
|
+
$mol_assert_ok($mol_compare_deep({ a: 1, b: 2 }, { b: 2, a: 1 }));
|
|
364
|
+
$mol_assert_ok($mol_compare_deep({ a: { b: 1 } }, { a: { b: 1 } }));
|
|
359
365
|
},
|
|
360
366
|
'Array'() {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
367
|
+
$mol_assert_ok($mol_compare_deep([], []));
|
|
368
|
+
$mol_assert_ok($mol_compare_deep([1, [2]], [1, [2]]));
|
|
369
|
+
$mol_assert_not($mol_compare_deep([1, 2], [1, 3]));
|
|
370
|
+
$mol_assert_not($mol_compare_deep([1, 2,], [1, 3, undefined]));
|
|
365
371
|
},
|
|
366
372
|
'Non POJO are different'() {
|
|
367
373
|
class Thing extends Object {
|
|
368
374
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
375
|
+
$mol_assert_not($mol_compare_deep(new Thing, new Thing));
|
|
376
|
+
$mol_assert_not($mol_compare_deep(() => 1, () => 1));
|
|
377
|
+
$mol_assert_not($mol_compare_deep(new RangeError('Test error'), new RangeError('Test error')));
|
|
372
378
|
},
|
|
373
379
|
'same POJOs with cyclic reference'() {
|
|
374
380
|
const a = { foo: {} };
|
|
375
381
|
a['self'] = a;
|
|
376
382
|
const b = { foo: {} };
|
|
377
383
|
b['self'] = b;
|
|
378
|
-
|
|
384
|
+
$mol_assert_ok($mol_compare_deep(a, b));
|
|
379
385
|
},
|
|
380
386
|
'Date'() {
|
|
381
|
-
|
|
382
|
-
|
|
387
|
+
$mol_assert_ok($mol_compare_deep(new Date(12345), new Date(12345)));
|
|
388
|
+
$mol_assert_not($mol_compare_deep(new Date(12345), new Date(12346)));
|
|
383
389
|
},
|
|
384
390
|
'RegExp'() {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
391
|
+
$mol_assert_ok($mol_compare_deep(/\x22/mig, /\x22/mig));
|
|
392
|
+
$mol_assert_not($mol_compare_deep(/\x22/mig, /\x21/mig));
|
|
393
|
+
$mol_assert_not($mol_compare_deep(/\x22/mig, /\x22/mg));
|
|
388
394
|
},
|
|
389
395
|
'Map'() {
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
396
|
+
$mol_assert_ok($mol_compare_deep(new Map, new Map));
|
|
397
|
+
$mol_assert_ok($mol_compare_deep(new Map([[1, [2]]]), new Map([[1, [2]]])));
|
|
398
|
+
$mol_assert_not($mol_compare_deep(new Map([[1, 2]]), new Map([[1, 3]])));
|
|
399
|
+
$mol_assert_not($mol_compare_deep(new Map([[[1], 2]]), new Map([[[1], 2]])));
|
|
394
400
|
},
|
|
395
401
|
'Set'() {
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
402
|
+
$mol_assert_ok($mol_compare_deep(new Set, new Set));
|
|
403
|
+
$mol_assert_ok($mol_compare_deep(new Set([1, [2]]), new Set([1, [2]])));
|
|
404
|
+
$mol_assert_not($mol_compare_deep(new Set([1]), new Set([2])));
|
|
399
405
|
},
|
|
400
406
|
'Uint8Array'() {
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
407
|
+
$mol_assert_ok($mol_compare_deep(new Uint8Array, new Uint8Array));
|
|
408
|
+
$mol_assert_ok($mol_compare_deep(new Uint8Array([0]), new Uint8Array([0])));
|
|
409
|
+
$mol_assert_not($mol_compare_deep(new Uint8Array([0]), new Uint8Array([1])));
|
|
404
410
|
},
|
|
405
411
|
'Custom comparator'() {
|
|
406
412
|
class User {
|
|
@@ -414,17 +420,17 @@ var $;
|
|
|
414
420
|
return this.name;
|
|
415
421
|
}
|
|
416
422
|
}
|
|
417
|
-
|
|
418
|
-
|
|
423
|
+
$mol_assert_ok($mol_compare_deep(new User('Jin'), new User('Jin')));
|
|
424
|
+
$mol_assert_not($mol_compare_deep(new User('Jin'), new User('John')));
|
|
419
425
|
},
|
|
420
426
|
});
|
|
421
427
|
})($ || ($ = {}));
|
|
422
|
-
//deep.test.
|
|
428
|
+
//mol/compare/deep/deep.test.tsx
|
|
423
429
|
;
|
|
424
430
|
"use strict";
|
|
425
431
|
var $;
|
|
426
432
|
(function ($) {
|
|
427
|
-
|
|
433
|
+
$.$mol_compare_deep_cache = new WeakMap();
|
|
428
434
|
function $mol_compare_deep(left, right) {
|
|
429
435
|
if (Object.is(left, right))
|
|
430
436
|
return true;
|
|
@@ -450,7 +456,7 @@ var $;
|
|
|
450
456
|
return Object.is(left.valueOf(), right['valueOf']());
|
|
451
457
|
if (left instanceof RegExp)
|
|
452
458
|
return left.source === right['source'] && left.flags === right['flags'];
|
|
453
|
-
let left_cache =
|
|
459
|
+
let left_cache = $.$mol_compare_deep_cache.get(left);
|
|
454
460
|
if (left_cache) {
|
|
455
461
|
const right_cache = left_cache.get(right);
|
|
456
462
|
if (typeof right_cache === 'boolean')
|
|
@@ -458,7 +464,7 @@ var $;
|
|
|
458
464
|
}
|
|
459
465
|
else {
|
|
460
466
|
left_cache = new WeakMap([[right, true]]);
|
|
461
|
-
|
|
467
|
+
$.$mol_compare_deep_cache.set(left, left_cache);
|
|
462
468
|
}
|
|
463
469
|
let result;
|
|
464
470
|
try {
|
|
@@ -542,50 +548,50 @@ var $;
|
|
|
542
548
|
return Object.is(left[Symbol.toPrimitive]('default'), right[Symbol.toPrimitive]('default'));
|
|
543
549
|
}
|
|
544
550
|
})($ || ($ = {}));
|
|
545
|
-
//deep.
|
|
551
|
+
//mol/compare/deep/deep.ts
|
|
546
552
|
;
|
|
547
553
|
"use strict";
|
|
548
554
|
var $;
|
|
549
555
|
(function ($) {
|
|
550
556
|
function $mol_dom_serialize(node) {
|
|
551
|
-
const serializer = new
|
|
557
|
+
const serializer = new $mol_dom_context.XMLSerializer;
|
|
552
558
|
return serializer.serializeToString(node);
|
|
553
559
|
}
|
|
554
560
|
$.$mol_dom_serialize = $mol_dom_serialize;
|
|
555
561
|
})($ || ($ = {}));
|
|
556
|
-
//serialize.
|
|
562
|
+
//mol/dom/serialize/serialize.ts
|
|
557
563
|
;
|
|
558
564
|
"use strict";
|
|
559
565
|
var $;
|
|
560
566
|
(function ($) {
|
|
561
|
-
|
|
567
|
+
$mol_test({
|
|
562
568
|
'must be false'() {
|
|
563
|
-
|
|
569
|
+
$mol_assert_not(0);
|
|
564
570
|
},
|
|
565
571
|
'must be true'() {
|
|
566
|
-
|
|
572
|
+
$mol_assert_ok(1);
|
|
567
573
|
},
|
|
568
574
|
'two must be equal'() {
|
|
569
|
-
|
|
575
|
+
$mol_assert_equal(2, 2);
|
|
570
576
|
},
|
|
571
577
|
'three must be equal'() {
|
|
572
|
-
|
|
578
|
+
$mol_assert_equal(2, 2, 2);
|
|
573
579
|
},
|
|
574
580
|
'two must be unique'() {
|
|
575
|
-
|
|
581
|
+
$mol_assert_unique([3], [3]);
|
|
576
582
|
},
|
|
577
583
|
'three must be unique'() {
|
|
578
|
-
|
|
584
|
+
$mol_assert_unique([3], [3], [3]);
|
|
579
585
|
},
|
|
580
586
|
'two must be alike'() {
|
|
581
|
-
|
|
587
|
+
$mol_assert_like([3], [3]);
|
|
582
588
|
},
|
|
583
589
|
'three must be alike'() {
|
|
584
|
-
|
|
590
|
+
$mol_assert_like([3], [3], [3]);
|
|
585
591
|
},
|
|
586
592
|
});
|
|
587
593
|
})($ || ($ = {}));
|
|
588
|
-
//assert.test.
|
|
594
|
+
//mol/assert/assert.test.ts
|
|
589
595
|
;
|
|
590
596
|
"use strict";
|
|
591
597
|
var $;
|
|
@@ -593,13 +599,13 @@ var $;
|
|
|
593
599
|
function $mol_assert_ok(value) {
|
|
594
600
|
if (value)
|
|
595
601
|
return;
|
|
596
|
-
|
|
602
|
+
$mol_fail(new Error(`${value} ≠ true`));
|
|
597
603
|
}
|
|
598
604
|
$.$mol_assert_ok = $mol_assert_ok;
|
|
599
605
|
function $mol_assert_not(value) {
|
|
600
606
|
if (!value)
|
|
601
607
|
return;
|
|
602
|
-
|
|
608
|
+
$mol_fail(new Error(`${value} ≠ false`));
|
|
603
609
|
}
|
|
604
610
|
$.$mol_assert_not = $mol_assert_not;
|
|
605
611
|
function $mol_assert_fail(handler, ErrorRight) {
|
|
@@ -623,7 +629,7 @@ var $;
|
|
|
623
629
|
finally {
|
|
624
630
|
$.$mol_fail = fail;
|
|
625
631
|
}
|
|
626
|
-
|
|
632
|
+
$mol_fail(new Error('Not failed'));
|
|
627
633
|
}
|
|
628
634
|
$.$mol_assert_fail = $mol_assert_fail;
|
|
629
635
|
function $mol_assert_equal(...args) {
|
|
@@ -634,7 +640,7 @@ var $;
|
|
|
634
640
|
if (Number.isNaN(args[i]) && Number.isNaN(args[j]))
|
|
635
641
|
continue;
|
|
636
642
|
if (args[i] !== args[j])
|
|
637
|
-
|
|
643
|
+
$mol_fail(new Error(`Not equal (${i + 1}:${j + 1})\n${args[i]}\n${args[j]}`));
|
|
638
644
|
}
|
|
639
645
|
}
|
|
640
646
|
}
|
|
@@ -645,7 +651,7 @@ var $;
|
|
|
645
651
|
if (i === j)
|
|
646
652
|
continue;
|
|
647
653
|
if (args[i] === args[j] || (Number.isNaN(args[i]) && Number.isNaN(args[j]))) {
|
|
648
|
-
|
|
654
|
+
$mol_fail(new Error(`args[${i}] = args[${j}] = ${args[i]}`));
|
|
649
655
|
}
|
|
650
656
|
}
|
|
651
657
|
}
|
|
@@ -653,7 +659,7 @@ var $;
|
|
|
653
659
|
$.$mol_assert_unique = $mol_assert_unique;
|
|
654
660
|
function $mol_assert_like(head, ...tail) {
|
|
655
661
|
for (let [index, value] of Object.entries(tail)) {
|
|
656
|
-
if (
|
|
662
|
+
if (!$mol_compare_deep(value, head)) {
|
|
657
663
|
const print = (val) => {
|
|
658
664
|
if (!val)
|
|
659
665
|
return val;
|
|
@@ -669,41 +675,41 @@ var $;
|
|
|
669
675
|
return val;
|
|
670
676
|
}
|
|
671
677
|
};
|
|
672
|
-
return
|
|
678
|
+
return $mol_fail(new Error(`Not like (1:${+index + 2})\n${print(head)}\n---\n${print(value)}`));
|
|
673
679
|
}
|
|
674
680
|
}
|
|
675
681
|
}
|
|
676
682
|
$.$mol_assert_like = $mol_assert_like;
|
|
677
683
|
function $mol_assert_dom(left, right) {
|
|
678
|
-
$mol_assert_equal(
|
|
684
|
+
$mol_assert_equal($mol_dom_serialize(left), $mol_dom_serialize(right));
|
|
679
685
|
}
|
|
680
686
|
$.$mol_assert_dom = $mol_assert_dom;
|
|
681
687
|
})($ || ($ = {}));
|
|
682
|
-
//assert.
|
|
688
|
+
//mol/assert/assert.ts
|
|
683
689
|
;
|
|
684
690
|
"use strict";
|
|
685
691
|
var $;
|
|
686
692
|
(function ($) {
|
|
687
|
-
|
|
693
|
+
$mol_test({
|
|
688
694
|
async 'put, get, drop, count records and clear store'() {
|
|
689
|
-
const db = await
|
|
695
|
+
const db = await $$.$mol_db('$mol_db_test', mig => mig.store_make('letters'));
|
|
690
696
|
const trans = db.change('letters');
|
|
691
697
|
try {
|
|
692
698
|
const { letters } = trans.stores;
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
699
|
+
$mol_assert_like(await letters.get(1), undefined);
|
|
700
|
+
$mol_assert_like(await letters.get(2), undefined);
|
|
701
|
+
$mol_assert_like(await letters.count(), 0);
|
|
696
702
|
await letters.put('a');
|
|
697
703
|
await letters.put('b', 1);
|
|
698
704
|
await letters.put('c', 2);
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
705
|
+
$mol_assert_like(await letters.get(1), 'b');
|
|
706
|
+
$mol_assert_like(await letters.get(2), 'c');
|
|
707
|
+
$mol_assert_like(await letters.count(), 2);
|
|
702
708
|
await letters.drop(1);
|
|
703
|
-
|
|
704
|
-
|
|
709
|
+
$mol_assert_like(await letters.get(1), undefined);
|
|
710
|
+
$mol_assert_like(await letters.count(), 1);
|
|
705
711
|
await letters.clear();
|
|
706
|
-
|
|
712
|
+
$mol_assert_like(await letters.count(), 0);
|
|
707
713
|
}
|
|
708
714
|
finally {
|
|
709
715
|
trans.abort();
|
|
@@ -711,7 +717,7 @@ var $;
|
|
|
711
717
|
}
|
|
712
718
|
},
|
|
713
719
|
async 'select by query'() {
|
|
714
|
-
const db = await
|
|
720
|
+
const db = await $$.$mol_db('$mol_db_test', mig => mig.store_make('letters'));
|
|
715
721
|
const trans = db.change('letters');
|
|
716
722
|
try {
|
|
717
723
|
const { letters } = trans.stores;
|
|
@@ -719,9 +725,9 @@ var $;
|
|
|
719
725
|
await letters.put('b');
|
|
720
726
|
await letters.put('c');
|
|
721
727
|
await letters.put('d');
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
728
|
+
$mol_assert_like(await letters.select(), ['a', 'b', 'c', 'd']);
|
|
729
|
+
$mol_assert_like(await letters.select(null, 2), ['a', 'b']);
|
|
730
|
+
$mol_assert_like(await letters.select(IDBKeyRange.bound(2, 3)), ['b', 'c']);
|
|
725
731
|
}
|
|
726
732
|
finally {
|
|
727
733
|
trans.abort();
|
|
@@ -730,35 +736,35 @@ var $;
|
|
|
730
736
|
},
|
|
731
737
|
});
|
|
732
738
|
})($ || ($ = {}));
|
|
733
|
-
//store.test.
|
|
739
|
+
//mol/db/store/store.test.ts
|
|
734
740
|
;
|
|
735
741
|
"use strict";
|
|
736
742
|
var $;
|
|
737
743
|
(function ($) {
|
|
738
|
-
|
|
744
|
+
$mol_test({
|
|
739
745
|
async 'take and drop db'() {
|
|
740
|
-
const db = await
|
|
746
|
+
const db = await $$.$mol_db('$mol_db_test');
|
|
741
747
|
await db.kill();
|
|
742
748
|
},
|
|
743
749
|
async 'make and drop store in separate migrations'() {
|
|
744
750
|
try {
|
|
745
|
-
const db1 = await
|
|
751
|
+
const db1 = await $$.$mol_db('$mol_db_test', mig => mig.store_make('temp'));
|
|
746
752
|
db1.destructor();
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
const db2 = await
|
|
753
|
+
$mol_assert_like(db1.stores, ['temp']);
|
|
754
|
+
$mol_assert_like(db1.version, 2);
|
|
755
|
+
const db2 = await $$.$mol_db('$mol_db_test', mig => mig.store_make('temp'), mig => mig.store_drop('temp'));
|
|
750
756
|
db2.destructor();
|
|
751
|
-
|
|
752
|
-
|
|
757
|
+
$mol_assert_like(db2.stores, []);
|
|
758
|
+
$mol_assert_like(db2.version, 3);
|
|
753
759
|
}
|
|
754
760
|
finally {
|
|
755
|
-
const db0 = await
|
|
761
|
+
const db0 = await $$.$mol_db('$mol_db_test');
|
|
756
762
|
await db0.kill();
|
|
757
763
|
}
|
|
758
764
|
},
|
|
759
765
|
});
|
|
760
766
|
})($ || ($ = {}));
|
|
761
|
-
//db.test.
|
|
767
|
+
//mol/db/db.test.ts
|
|
762
768
|
;
|
|
763
769
|
"use strict";
|
|
764
770
|
var $;
|
|
@@ -782,18 +788,18 @@ var $;
|
|
|
782
788
|
$.$mol_log3_area_lazy = $mol_log3_area_lazy;
|
|
783
789
|
$.$mol_log3_stack = [];
|
|
784
790
|
})($ || ($ = {}));
|
|
785
|
-
//log3.
|
|
791
|
+
//mol/log3/log3.ts
|
|
786
792
|
;
|
|
787
793
|
"use strict";
|
|
788
|
-
//extract.test.
|
|
794
|
+
//mol/type/keys/extract/extract.test.ts
|
|
789
795
|
;
|
|
790
796
|
"use strict";
|
|
791
|
-
//extract.
|
|
797
|
+
//mol/type/keys/extract/extract.ts
|
|
792
798
|
;
|
|
793
799
|
"use strict";
|
|
794
800
|
var $;
|
|
795
801
|
(function ($_1) {
|
|
796
|
-
$
|
|
802
|
+
$mol_test_mocks.push($ => {
|
|
797
803
|
$.$mol_log3_come = () => { };
|
|
798
804
|
$.$mol_log3_done = () => { };
|
|
799
805
|
$.$mol_log3_fail = () => { };
|
|
@@ -802,7 +808,7 @@ var $;
|
|
|
802
808
|
$.$mol_log3_area = () => () => { };
|
|
803
809
|
});
|
|
804
810
|
})($ || ($ = {}));
|
|
805
|
-
//log3.test.
|
|
811
|
+
//mol/log3/log3.test.ts
|
|
806
812
|
;
|
|
807
813
|
"use strict";
|
|
808
814
|
var $;
|
|
@@ -831,20 +837,20 @@ var $;
|
|
|
831
837
|
$.$mol_log3_rise = $mol_log3_web_make('log', 'magenta');
|
|
832
838
|
$.$mol_log3_area = $mol_log3_web_make('group', 'cyan');
|
|
833
839
|
})($ || ($ = {}));
|
|
834
|
-
//log3.web.
|
|
840
|
+
//mol/log3/log3.web.ts
|
|
835
841
|
;
|
|
836
842
|
"use strict";
|
|
837
|
-
//equals.test.
|
|
843
|
+
//mol/type/equals/equals.test.ts
|
|
838
844
|
;
|
|
839
845
|
"use strict";
|
|
840
|
-
//equals.
|
|
846
|
+
//mol/type/equals/equals.ts
|
|
841
847
|
;
|
|
842
848
|
"use strict";
|
|
843
849
|
var $;
|
|
844
850
|
(function ($) {
|
|
845
|
-
|
|
851
|
+
$mol_test({
|
|
846
852
|
async 'unique index'() {
|
|
847
|
-
const db = await
|
|
853
|
+
const db = await $$.$mol_db('$mol_db_test', mig => mig.store_make('users'), mig => mig.stores.users.index_make('names', ['name'], !!'unique'));
|
|
848
854
|
const trans = db.change('users');
|
|
849
855
|
try {
|
|
850
856
|
const { users } = trans.stores;
|
|
@@ -852,16 +858,16 @@ var $;
|
|
|
852
858
|
await users.put({ name: 'John' }, 'john');
|
|
853
859
|
await users.put({ name: 'Bin' }, 'bin');
|
|
854
860
|
const { names } = users.indexes;
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
861
|
+
$mol_assert_like(await names.get(['Jin']), { name: 'Jin' });
|
|
862
|
+
$mol_assert_like(await names.get(['John']), { name: 'John' });
|
|
863
|
+
$mol_assert_like(await names.count(), 3);
|
|
864
|
+
$mol_assert_like(await names.select(IDBKeyRange.bound(['J'], ['J\uFFFF'])), [{ name: 'Jin' }, { name: 'John' }]);
|
|
859
865
|
try {
|
|
860
866
|
await users.put({ name: 'Jin' }, 'jin2');
|
|
861
|
-
|
|
867
|
+
$mol_fail(new Error('Exception expected'));
|
|
862
868
|
}
|
|
863
869
|
catch (error) {
|
|
864
|
-
|
|
870
|
+
$mol_assert_unique(error.message, 'Exception expected');
|
|
865
871
|
}
|
|
866
872
|
}
|
|
867
873
|
finally {
|
|
@@ -870,7 +876,7 @@ var $;
|
|
|
870
876
|
}
|
|
871
877
|
},
|
|
872
878
|
async 'multi path index'() {
|
|
873
|
-
const db = await
|
|
879
|
+
const db = await $$.$mol_db('$mol_db_test', mig => mig.store_make('users'), mig => mig.stores.users.index_make('names', ['first', 'last']));
|
|
874
880
|
const trans = db.change('users');
|
|
875
881
|
try {
|
|
876
882
|
const { users } = trans.stores;
|
|
@@ -878,10 +884,10 @@ var $;
|
|
|
878
884
|
await users.put({ first: 'John', last: 'Jinson' }, 'john');
|
|
879
885
|
await users.put({ first: 'Bond', last: 'James' }, '007');
|
|
880
886
|
const { names } = users.indexes;
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
887
|
+
$mol_assert_like(await names.get(['Jin', 'Johnson']), { first: 'Jin', last: 'Johnson' });
|
|
888
|
+
$mol_assert_like(await names.get(['John', 'Jinson']), { first: 'John', last: 'Jinson' });
|
|
889
|
+
$mol_assert_like(await names.count(), 3);
|
|
890
|
+
$mol_assert_like(await names.select(IDBKeyRange.bound(['Jin', 'Johnson'], ['John', 'Jinson'])), [{ first: 'Jin', last: 'Johnson' }, { first: 'John', last: 'Jinson' }]);
|
|
885
891
|
}
|
|
886
892
|
finally {
|
|
887
893
|
trans.abort();
|
|
@@ -889,18 +895,18 @@ var $;
|
|
|
889
895
|
}
|
|
890
896
|
},
|
|
891
897
|
async 'multiple indexes'() {
|
|
892
|
-
const db = await
|
|
898
|
+
const db = await $$.$mol_db('$mol_db_test', mig => mig.store_make('users'), mig => mig.stores.users.index_make('names', ['name'], !!'unique'), mig => mig.stores.users.index_make('ages', ['age']));
|
|
893
899
|
const trans = db.change('users');
|
|
894
900
|
try {
|
|
895
901
|
const { users } = trans.stores;
|
|
896
902
|
await users.put({ name: 'Jin', age: 18 }, 'jin');
|
|
897
903
|
await users.put({ name: 'John', age: 18 }, 'john');
|
|
898
904
|
const { names, ages } = users.indexes;
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
905
|
+
$mol_assert_like(await names.select(['Jin']), [{ name: 'Jin', age: 18 }]);
|
|
906
|
+
$mol_assert_like(await names.select(['John']), [{ name: 'John', age: 18 }]);
|
|
907
|
+
$mol_assert_like(await names.count(), 2);
|
|
908
|
+
$mol_assert_like(await ages.select([18]), [{ name: 'Jin', age: 18 }, { name: 'John', age: 18 }]);
|
|
909
|
+
$mol_assert_like(await ages.count(), 2);
|
|
904
910
|
}
|
|
905
911
|
finally {
|
|
906
912
|
trans.abort();
|
|
@@ -909,6 +915,6 @@ var $;
|
|
|
909
915
|
},
|
|
910
916
|
});
|
|
911
917
|
})($ || ($ = {}));
|
|
912
|
-
//index.test.
|
|
918
|
+
//mol/db/index/index.test.ts
|
|
913
919
|
|
|
914
920
|
//# sourceMappingURL=web.test.js.map
|