UNPKG

@logic-pad/core

Version:
22 lines (21 loc) 803 B
import SerializerChecksum from '../serializer_checksum.js'; import CompressorBase from './compressorBase.js'; const checksumSerializer = new SerializerChecksum(); const encoder = new TextEncoder(); export default class ChecksumCompressor extends CompressorBase { get id() { return `cs${checksumSerializer.version}`; } async compress(input) { const data = encoder.encode(input); const hashBuffer = await crypto.subtle.digest('SHA-256', data); const hashArray = Array.from(new Uint8Array(hashBuffer)); const hashHex = hashArray .map(b => b.toString(16).padStart(2, '0')) .join(''); return `${this.id}_${hashHex}`; } decompress(_input) { throw new Error('Checksum decompression is not supported'); } }