Skip to content

Commit 3a2ed3c

Browse files
cmdcolinclaude
andcommitted
update typescript to latest
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0eb20cf commit 3a2ed3c

27 files changed

+279
-229
lines changed

bench.mjs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ console.log('Reference sequences:', refNames)
1010

1111
// Warm up
1212
let count = 0
13-
await f.getLines(refNames[0], 0, 100000, () => { count++ })
13+
await f.getLines(refNames[0], 0, 100000, () => {
14+
count++
15+
})
1416
console.log(`Warmup: ${count} lines`)
1517

1618
// Benchmark: large region query
@@ -19,7 +21,9 @@ const times = []
1921
for (let i = 0; i < iterations; i++) {
2022
count = 0
2123
const start = performance.now()
22-
await f.getLines(refNames[0], 0, 50_000_000, () => { count++ })
24+
await f.getLines(refNames[0], 0, 50_000_000, () => {
25+
count++
26+
})
2327
const elapsed = performance.now() - start
2428
times.push(elapsed)
2529
}
@@ -28,4 +32,6 @@ times.sort((a, b) => a - b)
2832
// Drop lowest and highest, average the rest
2933
const trimmed = times.slice(2, -2)
3034
const avg = trimmed.reduce((a, b) => a + b, 0) / trimmed.length
31-
console.log(`${count} lines, avg ${avg.toFixed(1)}ms (trimmed, n=${trimmed.length})`)
35+
console.log(
36+
`${count} lines, avg ${avg.toFixed(1)}ms (trimmed, n=${trimmed.length})`,
37+
)

bench_ab.mjs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,14 @@ for (let i = 0; i < rounds; i++) {
1919
const bTime = parseFloat(bMatch[1])
2020
branchTimes.push(bTime)
2121

22-
console.log(`Round ${i + 1}: master=${mTime.toFixed(1)}ms branch=${bTime.toFixed(1)}ms`)
22+
console.log(
23+
`Round ${i + 1}: master=${mTime.toFixed(1)}ms branch=${bTime.toFixed(1)}ms`,
24+
)
2325
}
2426

2527
const avg = arr => arr.reduce((a, b) => a + b, 0) / arr.length
2628
console.log(`\nMaster avg: ${avg(masterTimes).toFixed(1)}ms`)
2729
console.log(`Branch avg: ${avg(branchTimes).toFixed(1)}ms`)
28-
console.log(`Delta: ${((1 - avg(branchTimes) / avg(masterTimes)) * 100).toFixed(1)}% faster`)
30+
console.log(
31+
`Delta: ${((1 - avg(branchTimes) / avg(masterTimes)) * 100).toFixed(1)}% faster`,
32+
)

bench_all.mjs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,18 @@ for (const { name, path, tbiPath, region } of files) {
5858

5959
// warmup
6060
let count = 0
61-
await f.getLines(ref, region[0], region[1], () => { count++ })
61+
await f.getLines(ref, region[0], region[1], () => {
62+
count++
63+
})
6264

6365
const iterations = 10
6466
const times = []
6567
for (let i = 0; i < iterations; i++) {
6668
count = 0
6769
const start = performance.now()
68-
await f.getLines(ref, region[0], region[1], () => { count++ })
70+
await f.getLines(ref, region[0], region[1], () => {
71+
count++
72+
})
6973
const elapsed = performance.now() - start
7074
times.push(elapsed)
7175
}

bench_profile.cjs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
async function main() {
2-
const { default: TabixIndexedFile } = await import('./src/tabixIndexedFile.ts')
2+
const { default: TabixIndexedFile } =
3+
await import('./src/tabixIndexedFile.ts')
34
const f = new TabixIndexedFile({
45
path: 'test/data/1kg.chr1.subset.vcf.gz',
56
tbiPath: 'test/data/1kg.chr1.subset.vcf.gz.tbi',
67
})
78
const refNames = await f.getReferenceSequenceNames()
89
let count = 0
9-
await f.getLines(refNames[0], 0, 100000, () => { count++ })
10+
await f.getLines(refNames[0], 0, 100000, () => {
11+
count++
12+
})
1013
console.log('warmup:', count)
1114
count = 0
1215
const start = performance.now()
13-
await f.getLines(refNames[0], 0, 50_000_000, () => { count++ })
16+
await f.getLines(refNames[0], 0, 50_000_000, () => {
17+
count++
18+
})
1419
console.log(count, 'lines in', (performance.now() - start).toFixed(0), 'ms')
1520
}
1621
main()

eslint.config.mjs

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,15 @@ export default defineConfig(
4141
allow: ['error', 'warn'],
4242
},
4343
],
44-
'no-underscore-dangle': 'off',
4544
curly: 'error',
4645
'@typescript-eslint/consistent-type-imports': 'error',
4746

4847
semi: ['error', 'never'],
4948
'unicorn/number-literal-case': 'off',
50-
'unicorn/text-encoding-identifier-case': 'off',
51-
'unicorn/no-new-array': 'off',
5249
'unicorn/no-null': 'off',
5350
'unicorn/prefer-module': 'off',
5451
'unicorn/filename-case': 'off',
5552
'unicorn/prevent-abbreviations': 'off',
56-
'unicorn/prefer-code-point': 'off',
57-
'unicorn/numeric-separators-style': 'off',
5853

5954
'@typescript-eslint/no-unused-vars': [
6055
'warn',
@@ -63,21 +58,21 @@ export default defineConfig(
6358
ignoreRestSiblings: true,
6459
},
6560
],
66-
'@typescript-eslint/no-explicit-any': 'warn',
67-
'@typescript-eslint/ban-ts-comment': ['error', { 'ts-expect-error': 'allow-with-description', 'ts-ignore': true }],
61+
'@typescript-eslint/no-explicit-any': 'error',
62+
'@typescript-eslint/ban-ts-comment': [
63+
'error',
64+
{ 'ts-expect-error': 'allow-with-description', 'ts-ignore': true },
65+
],
6866
'@typescript-eslint/no-non-null-assertion': 'off',
69-
'@typescript-eslint/restrict-template-expressions': 'off',
70-
'@typescript-eslint/no-unsafe-member-access': 'off',
71-
'@typescript-eslint/no-unsafe-argument': 'off',
72-
'@typescript-eslint/no-unsafe-assignment': 'off',
73-
'@typescript-eslint/no-unsafe-call': 'off',
74-
'@typescript-eslint/no-unsafe-return': 'off',
75-
'@typescript-eslint/prefer-nullish-coalescing': 'off',
67+
'@typescript-eslint/restrict-template-expressions': [
68+
'error',
69+
{ allowNumber: true },
70+
],
71+
'@typescript-eslint/prefer-nullish-coalescing': 'error',
7672
'@typescript-eslint/no-deprecated': 'warn',
77-
'@typescript-eslint/restrict-plus-operands': 'off',
78-
'no-empty': 'off',
7973

8074
'import/no-unresolved': 'off',
75+
'import/extensions': ['error', 'always', { ignorePackages: true }],
8176
'import/order': [
8277
'error',
8378
{

generate_safe_150kb.cjs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
const fs = require('fs');
1+
const fs = require('fs')
22

3-
const filename = 'safe_150kb.gff3';
4-
const stream = fs.createWriteStream(filename);
5-
stream.write('##gff-version 3\n');
3+
const filename = 'safe_150kb.gff3'
4+
const stream = fs.createWriteStream(filename)
5+
stream.write('##gff-version 3\n')
66

77
// 20,000 features gives approx 150KB compressed
88
for (let i = 1; i <= 20000; i++) {
9-
const start = i * 100;
10-
const end = start + 50;
11-
stream.write(`chr1\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`);
9+
const start = i * 100
10+
const end = start + 50
11+
stream.write(
12+
`chr1\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`,
13+
)
1214
}
1315

14-
stream.end();
15-
console.log(`Generated ${filename}`);
16+
stream.end()
17+
console.log(`Generated ${filename}`)

generate_safe_45kb.cjs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
const fs = require('fs');
1+
const fs = require('fs')
22

3-
const filename = 'safe_45kb.gff3';
4-
const stream = fs.createWriteStream(filename);
5-
stream.write('##gff-version 3\n');
3+
const filename = 'safe_45kb.gff3'
4+
const stream = fs.createWriteStream(filename)
5+
stream.write('##gff-version 3\n')
66

77
// 6,000 features gives approx 45KB compressed
88
for (let i = 1; i <= 6000; i++) {
9-
const start = i * 100;
10-
const end = start + 50;
11-
stream.write(`chr1\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`);
9+
const start = i * 100
10+
const end = start + 50
11+
stream.write(
12+
`chr1\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`,
13+
)
1214
}
1315

14-
stream.end();
15-
console.log(`Generated ${filename}`);
16+
stream.end()
17+
console.log(`Generated ${filename}`)

generate_trigger.cjs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
const fs = require('fs');
1+
const fs = require('fs')
22

3-
const stream = fs.createWriteStream('trigger.gff3');
4-
stream.write('##gff-version 3\n');
3+
const stream = fs.createWriteStream('trigger.gff3')
4+
stream.write('##gff-version 3\n')
55

66
// Generate enough lines to get to ~250KB uncompressed
77
// Each line is ~60 characters
88
for (let i = 1; i <= 30000; i++) {
9-
const start = i * 100;
10-
const end = start + 50;
11-
stream.write(`ctgA\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`);
9+
const start = i * 100
10+
const end = start + 50
11+
stream.write(
12+
`ctgA\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`,
13+
)
1214
}
1315

14-
stream.end();
15-
console.log('Generated trigger.gff3');
16+
stream.end()
17+
console.log('Generated trigger.gff3')

generate_trigger_224kb.cjs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
const fs = require('fs');
1+
const fs = require('fs')
22

3-
const filename = 'trigger_224kb.gff3';
4-
const stream = fs.createWriteStream(filename);
5-
stream.write('##gff-version 3\n');
3+
const filename = 'trigger_224kb.gff3'
4+
const stream = fs.createWriteStream(filename)
5+
stream.write('##gff-version 3\n')
66

77
// 30,000 features gives approx 224KB compressed
88
for (let i = 1; i <= 30000; i++) {
9-
const start = i * 100;
10-
const end = start + 50;
11-
stream.write(`chr1\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`);
9+
const start = i * 100
10+
const end = start + 50
11+
stream.write(
12+
`chr1\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`,
13+
)
1214
}
1315

14-
stream.end();
15-
console.log(`Generated ${filename}`);
16+
stream.end()
17+
console.log(`Generated ${filename}`)

generate_trigger_79kb.cjs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
const fs = require('fs');
1+
const fs = require('fs')
22

3-
const filename = 'trigger_79kb.gff3';
4-
const stream = fs.createWriteStream(filename);
5-
stream.write('##gff-version 3\n');
3+
const filename = 'trigger_79kb.gff3'
4+
const stream = fs.createWriteStream(filename)
5+
stream.write('##gff-version 3\n')
66

77
// 12,000 features gives approx 80-90KB compressed
88
for (let i = 1; i <= 12000; i++) {
9-
const start = i * 100;
10-
const end = start + 50;
11-
stream.write(`chr1\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`);
9+
const start = i * 100
10+
const end = start + 50
11+
stream.write(
12+
`chr1\ttest\tgene\t${start}\t${end}\t.\t+\t.\tID=gene${i};Name=gene${i}\n`,
13+
)
1214
}
1315

14-
stream.end();
15-
console.log(`Generated ${filename}`);
16+
stream.end()
17+
console.log(`Generated ${filename}`)

0 commit comments

Comments
 (0)