fix: replace require('crypto') with ESM import in SSTable

SSTable.calculateChecksum() used require('crypto') which breaks in ESM
environments and Bun. Replace with top-level import { createHash } from
'node:crypto' — SSTable is Node-only (LSM-tree filesystem storage) so
a direct node:crypto import is appropriate.
This commit is contained in:
David Snelling 2026-02-24 12:25:26 -08:00
parent 027607688f
commit 239a4da835

View file

@ -14,6 +14,7 @@
* - Footer: checksum, stats * - Footer: checksum, stats
*/ */
import { createHash } from 'node:crypto'
import { encode as defaultEncode, decode as defaultDecode } from '@msgpack/msgpack' import { encode as defaultEncode, decode as defaultDecode } from '@msgpack/msgpack'
import { BloomFilter, SerializedBloomFilter } from './BloomFilter.js' import { BloomFilter, SerializedBloomFilter } from './BloomFilter.js'
@ -326,8 +327,7 @@ export class SSTable {
* Simple but effective: hash of all sourceIds concatenated * Simple but effective: hash of all sourceIds concatenated
*/ */
private calculateChecksum(entries: SSTableEntry[]): string { private calculateChecksum(entries: SSTableEntry[]): string {
const crypto = require('crypto') const hash = createHash('sha256')
const hash = crypto.createHash('sha256')
for (const entry of entries) { for (const entry of entries) {
hash.update(entry.sourceId) hash.update(entry.sourceId)