tangled
alpha
login
or
join now
tombl.dev
/
dhtml
1
fork
atom
a post-component library for building user-interfaces on the web.
1
fork
atom
overview
issues
pulls
pipelines
Fix TypeScript errors for isolated declarations
tombl.dev
7 months ago
c5e52406
8e654f1d
verified
This commit was signed with the committer's
known signature
.
tombl.dev
SSH Key Fingerprint:
SHA256:d8AHgL5V+3WdvGdDb3SVBfb0RIRJfkKcqhQ5aG1mVNk=
+75
-68
3 changed files
expand all
collapse all
unified
split
scripts
test
main.ts
runtime.ts
src
client
tests
bench-comparison.ts
+5
-4
scripts/test/main.ts
reviewed
···
1
1
import { createBirpc } from 'birpc'
2
2
+
import type { ExecFileOptions } from 'node:child_process'
2
3
import { execFile } from 'node:child_process'
3
4
import * as fs from 'node:fs/promises'
4
5
import * as path from 'node:path'
···
44
45
console.log(`Building ${commit}`)
45
46
46
47
// Create worktree for this commit
47
47
-
await exec_file('git', ['worktree', 'add', temp_dir, commit], { stdio: 'inherit' })
48
48
+
await exec_file('git', ['worktree', 'add', temp_dir, commit], { stdio: 'inherit' } as ExecFileOptions)
48
49
49
50
// Install dependencies and build
50
50
-
await exec_file('npm', ['install'], { stdio: 'inherit', cwd: temp_dir })
51
51
-
await exec_file('npm', ['run', 'build'], { stdio: 'inherit', cwd: temp_dir })
51
51
+
await exec_file('npm', ['install'], { stdio: 'inherit', cwd: temp_dir } as ExecFileOptions)
52
52
+
await exec_file('npm', ['run', 'build'], { stdio: 'inherit', cwd: temp_dir } as ExecFileOptions)
52
53
53
54
console.log(`Completed building ${commit}`)
54
55
···
63
64
await Promise.all(
64
65
temp_dirs.map(async temp_dir => {
65
66
try {
66
66
-
await exec_file('git', ['worktree', 'remove', temp_dir], { stdio: 'inherit' })
67
67
+
await exec_file('git', ['worktree', 'remove', temp_dir], { stdio: 'inherit' } as ExecFileOptions)
67
68
} catch (error) {
68
69
console.warn(`Failed to remove worktree ${temp_dir}:`, error)
69
70
}
+11
-5
scripts/test/runtime.ts
reviewed
···
43
43
return benchmarks
44
44
} else {
45
45
// Multiple builds - comparison mode
46
46
-
const libraries = []
46
46
+
const libraries: Array<{
47
47
+
index: { html: any }
48
48
+
client: { invalidate: any; createRoot: any }
49
49
+
server: any
50
50
+
ref: string
51
51
+
}> = []
47
52
48
53
// Dynamically import all library versions
49
54
for (const build of builds) {
···
63
68
}
64
69
}
65
70
66
66
-
// Import get_benchmarks function
67
67
-
const benchModule = await import('../../../src/client/tests/bench-comparison.ts')
68
68
-
const get_benchmarks = benchModule.get_benchmarks
71
71
+
// Import get_benchmarks function dynamically
72
72
+
const benchPath = '../../../src/client/tests/bench-comparison.ts'
73
73
+
const benchModule = (await import(benchPath)) as any
74
74
+
const get_benchmarks = benchModule.get_benchmarks as Function
69
75
70
76
// Setup mitata comparison
71
77
mitata.summary(() => {
···
74
80
const benchmarks = get_benchmarks(lib)
75
81
// Run all benchmark functions
76
82
for (const [name, fn] of Object.entries(benchmarks)) {
77
77
-
if (name.startsWith('bench_')) {
83
83
+
if (name.startsWith('bench_') && typeof fn === 'function') {
78
84
fn()
79
85
}
80
86
}
+59
-59
src/client/tests/bench-comparison.ts
reviewed
···
4
4
}: {
5
5
index: { html: any }
6
6
client: { invalidate: any; createRoot: any }
7
7
-
}) {
7
7
+
}): Record<string, () => void> {
8
8
// Setup function using the passed library version
9
9
function setup(initial_html = '') {
10
10
const el = document.createElement('div')
···
413
413
// Benchmark Functions
414
414
// ==============================
415
415
416
416
-
function bench_table_small_render() {
416
416
+
function bench_table_small_render(): void {
417
417
const { root } = setup()
418
418
const state = new TableState(15, 4)
419
419
root.render(state)
420
420
}
421
421
422
422
-
function bench_table_small_removeAll() {
422
422
+
function bench_table_small_removeAll(): void {
423
423
const { root } = setup()
424
424
const state = new TableState(15, 4)
425
425
root.render(state)
···
427
427
invalidate(state)
428
428
}
429
429
430
430
-
function bench_table_small_sort() {
430
430
+
function bench_table_small_sort(): void {
431
431
const { root } = setup()
432
432
const state = new TableState(15, 4)
433
433
root.render(state)
···
435
435
invalidate(state)
436
436
}
437
437
438
438
-
function bench_table_small_filter() {
438
438
+
function bench_table_small_filter(): void {
439
439
const { root } = setup()
440
440
const state = new TableState(15, 4)
441
441
root.render(state)
···
443
443
invalidate(state)
444
444
}
445
445
446
446
-
function bench_table_small_activate() {
446
446
+
function bench_table_small_activate(): void {
447
447
const { root } = setup()
448
448
const state = new TableState(15, 4)
449
449
root.render(state)
···
451
451
invalidate(state)
452
452
}
453
453
454
454
-
function bench_table_large_render() {
454
454
+
function bench_table_large_render(): void {
455
455
const { root } = setup()
456
456
const state = new TableState(100, 4)
457
457
root.render(state)
458
458
}
459
459
460
460
-
function bench_table_large_removeAll() {
460
460
+
function bench_table_large_removeAll(): void {
461
461
const { root } = setup()
462
462
const state = new TableState(100, 4)
463
463
root.render(state)
···
465
465
invalidate(state)
466
466
}
467
467
468
468
-
function bench_table_large_sort() {
468
468
+
function bench_table_large_sort(): void {
469
469
const { root } = setup()
470
470
const state = new TableState(100, 4)
471
471
root.render(state)
···
473
473
invalidate(state)
474
474
}
475
475
476
476
-
function bench_table_large_filter() {
476
476
+
function bench_table_large_filter(): void {
477
477
const { root } = setup()
478
478
const state = new TableState(100, 4)
479
479
root.render(state)
···
481
481
invalidate(state)
482
482
}
483
483
484
484
-
function bench_table_large_activate() {
484
484
+
function bench_table_large_activate(): void {
485
485
const { root } = setup()
486
486
const state = new TableState(100, 4)
487
487
root.render(state)
···
489
489
invalidate(state)
490
490
}
491
491
492
492
-
function bench_anim_small_advance() {
492
492
+
function bench_anim_small_advance(): void {
493
493
const { root } = setup()
494
494
const state = new AnimState(30)
495
495
root.render(state)
···
497
497
invalidate(state)
498
498
}
499
499
500
500
-
function bench_anim_large_advance() {
500
500
+
function bench_anim_large_advance(): void {
501
501
const { root } = setup()
502
502
const state = new AnimState(100)
503
503
root.render(state)
···
505
505
invalidate(state)
506
506
}
507
507
508
508
-
function bench_tree_small_render() {
508
508
+
function bench_tree_small_render(): void {
509
509
const { root } = setup()
510
510
const state = new TreeState([5, 10])
511
511
root.render(state)
512
512
}
513
513
514
514
-
function bench_tree_small_removeAll() {
514
514
+
function bench_tree_small_removeAll(): void {
515
515
const { root } = setup()
516
516
const state = new TreeState([5, 10])
517
517
root.render(state)
···
519
519
invalidate(state)
520
520
}
521
521
522
522
-
function bench_tree_small_reverse() {
522
522
+
function bench_tree_small_reverse(): void {
523
523
const { root } = setup()
524
524
const state = new TreeState([5, 10])
525
525
root.render(state)
···
527
527
invalidate(state)
528
528
}
529
529
530
530
-
function bench_tree_small_insertFirst() {
530
530
+
function bench_tree_small_insertFirst(): void {
531
531
const { root } = setup()
532
532
const state = new TreeState([5, 10])
533
533
root.render(state)
···
535
535
invalidate(state)
536
536
}
537
537
538
538
-
function bench_tree_small_insertLast() {
538
538
+
function bench_tree_small_insertLast(): void {
539
539
const { root } = setup()
540
540
const state = new TreeState([5, 10])
541
541
root.render(state)
···
543
543
invalidate(state)
544
544
}
545
545
546
546
-
function bench_tree_small_removeFirst() {
546
546
+
function bench_tree_small_removeFirst(): void {
547
547
const { root } = setup()
548
548
const state = new TreeState([5, 10])
549
549
root.render(state)
···
551
551
invalidate(state)
552
552
}
553
553
554
554
-
function bench_tree_small_removeLast() {
554
554
+
function bench_tree_small_removeLast(): void {
555
555
const { root } = setup()
556
556
const state = new TreeState([5, 10])
557
557
root.render(state)
···
559
559
invalidate(state)
560
560
}
561
561
562
562
-
function bench_tree_small_moveFromEndToStart() {
562
562
+
function bench_tree_small_moveFromEndToStart(): void {
563
563
const { root } = setup()
564
564
const state = new TreeState([5, 10])
565
565
root.render(state)
···
567
567
invalidate(state)
568
568
}
569
569
570
570
-
function bench_tree_small_moveFromStartToEnd() {
570
570
+
function bench_tree_small_moveFromStartToEnd(): void {
571
571
const { root } = setup()
572
572
const state = new TreeState([5, 10])
573
573
root.render(state)
···
575
575
invalidate(state)
576
576
}
577
577
578
578
-
function bench_tree_small_no_change() {
578
578
+
function bench_tree_small_no_change(): void {
579
579
const { root } = setup()
580
580
const state = new TreeState([5, 10])
581
581
root.render(state)
582
582
invalidate(state)
583
583
}
584
584
585
585
-
function bench_tree_large_render() {
585
585
+
function bench_tree_large_render(): void {
586
586
const { root } = setup()
587
587
const state = new TreeState([50, 10])
588
588
root.render(state)
589
589
}
590
590
591
591
-
function bench_tree_large_removeAll() {
591
591
+
function bench_tree_large_removeAll(): void {
592
592
const { root } = setup()
593
593
const state = new TreeState([50, 10])
594
594
root.render(state)
···
596
596
invalidate(state)
597
597
}
598
598
599
599
-
function bench_tree_large_reverse() {
599
599
+
function bench_tree_large_reverse(): void {
600
600
const { root } = setup()
601
601
const state = new TreeState([50, 10])
602
602
root.render(state)
···
604
604
invalidate(state)
605
605
}
606
606
607
607
-
function bench_tree_worst_case_kivi() {
607
607
+
function bench_tree_worst_case_kivi(): void {
608
608
const { root } = setup()
609
609
const state = new TreeState([10, 10])
610
610
root.render(state)
···
612
612
invalidate(state)
613
613
}
614
614
615
615
-
function bench_tree_worst_case_snabbdom() {
615
615
+
function bench_tree_worst_case_snabbdom(): void {
616
616
const { root } = setup()
617
617
const state = new TreeState([10, 10])
618
618
root.render(state)
···
620
620
invalidate(state)
621
621
}
622
622
623
623
-
function bench_tree_worst_case_react() {
623
623
+
function bench_tree_worst_case_react(): void {
624
624
const { root } = setup()
625
625
const state = new TreeState([10, 10])
626
626
root.render(state)
···
628
628
invalidate(state)
629
629
}
630
630
631
631
-
function bench_tree_worst_case_virtual_dom() {
631
631
+
function bench_tree_worst_case_virtual_dom(): void {
632
632
const { root } = setup()
633
633
const state = new TreeState([10, 10])
634
634
root.render(state)
···
637
637
}
638
638
639
639
return {
640
640
-
bench_table_small_render,
641
641
-
bench_table_small_removeAll,
642
642
-
bench_table_small_sort,
643
643
-
bench_table_small_filter,
644
644
-
bench_table_small_activate,
645
645
-
bench_table_large_render,
646
646
-
bench_table_large_removeAll,
647
647
-
bench_table_large_sort,
648
648
-
bench_table_large_filter,
649
649
-
bench_table_large_activate,
650
650
-
bench_anim_small_advance,
651
651
-
bench_anim_large_advance,
652
652
-
bench_tree_small_render,
653
653
-
bench_tree_small_removeAll,
654
654
-
bench_tree_small_reverse,
655
655
-
bench_tree_small_insertFirst,
656
656
-
bench_tree_small_insertLast,
657
657
-
bench_tree_small_removeFirst,
658
658
-
bench_tree_small_removeLast,
659
659
-
bench_tree_small_moveFromEndToStart,
660
660
-
bench_tree_small_moveFromStartToEnd,
661
661
-
bench_tree_small_no_change,
662
662
-
bench_tree_large_render,
663
663
-
bench_tree_large_removeAll,
664
664
-
bench_tree_large_reverse,
665
665
-
bench_tree_worst_case_kivi,
666
666
-
bench_tree_worst_case_snabbdom,
667
667
-
bench_tree_worst_case_react,
668
668
-
bench_tree_worst_case_virtual_dom,
640
640
+
bench_table_small_render: bench_table_small_render,
641
641
+
bench_table_small_removeAll: bench_table_small_removeAll,
642
642
+
bench_table_small_sort: bench_table_small_sort,
643
643
+
bench_table_small_filter: bench_table_small_filter,
644
644
+
bench_table_small_activate: bench_table_small_activate,
645
645
+
bench_table_large_render: bench_table_large_render,
646
646
+
bench_table_large_removeAll: bench_table_large_removeAll,
647
647
+
bench_table_large_sort: bench_table_large_sort,
648
648
+
bench_table_large_filter: bench_table_large_filter,
649
649
+
bench_table_large_activate: bench_table_large_activate,
650
650
+
bench_anim_small_advance: bench_anim_small_advance,
651
651
+
bench_anim_large_advance: bench_anim_large_advance,
652
652
+
bench_tree_small_render: bench_tree_small_render,
653
653
+
bench_tree_small_removeAll: bench_tree_small_removeAll,
654
654
+
bench_tree_small_reverse: bench_tree_small_reverse,
655
655
+
bench_tree_small_insertFirst: bench_tree_small_insertFirst,
656
656
+
bench_tree_small_insertLast: bench_tree_small_insertLast,
657
657
+
bench_tree_small_removeFirst: bench_tree_small_removeFirst,
658
658
+
bench_tree_small_removeLast: bench_tree_small_removeLast,
659
659
+
bench_tree_small_moveFromEndToStart: bench_tree_small_moveFromEndToStart,
660
660
+
bench_tree_small_moveFromStartToEnd: bench_tree_small_moveFromStartToEnd,
661
661
+
bench_tree_small_no_change: bench_tree_small_no_change,
662
662
+
bench_tree_large_render: bench_tree_large_render,
663
663
+
bench_tree_large_removeAll: bench_tree_large_removeAll,
664
664
+
bench_tree_large_reverse: bench_tree_large_reverse,
665
665
+
bench_tree_worst_case_kivi: bench_tree_worst_case_kivi,
666
666
+
bench_tree_worst_case_snabbdom: bench_tree_worst_case_snabbdom,
667
667
+
bench_tree_worst_case_react: bench_tree_worst_case_react,
668
668
+
bench_tree_worst_case_virtual_dom: bench_tree_worst_case_virtual_dom,
669
669
}
670
670
}