18 lines
463 B
JavaScript
18 lines
463 B
JavaScript
import crypto from 'node:crypto'
|
|
|
|
if (typeof crypto.hash !== 'function') {
|
|
crypto.hash = (algorithm, data, outputEncoding) => {
|
|
const hash = crypto.createHash(algorithm)
|
|
|
|
if (data instanceof ArrayBuffer) {
|
|
hash.update(Buffer.from(data))
|
|
} else if (ArrayBuffer.isView(data)) {
|
|
hash.update(Buffer.from(data.buffer, data.byteOffset, data.byteLength))
|
|
} else {
|
|
hash.update(data)
|
|
}
|
|
|
|
return hash.digest(outputEncoding)
|
|
}
|
|
}
|