@gmod/cram
Version:
read CRAM files with pure Javascript
30 lines • 1.07 kB
JavaScript
import BetaCodec from "./beta.js";
import ByteArrayLengthCodec from "./byteArrayLength.js";
import ByteArrayStopCodec from "./byteArrayStop.js";
import ExternalCodec from "./external.js";
import GammaCodec from "./gamma.js";
import HuffmanIntCodec from "./huffman.js";
import SubexpCodec from "./subexp.js";
import { CramUnimplementedError } from "../../errors.js";
const codecClasses = {
1: ExternalCodec,
// 2: GolombCodec,
3: HuffmanIntCodec,
4: ByteArrayLengthCodec,
5: ByteArrayStopCodec,
6: BetaCodec,
7: SubexpCodec,
// 8: GolombRiceCodec,
9: GammaCodec,
};
function getCodecClassWithId(id) {
return codecClasses[id];
}
export function instantiateCodec(encodingData, dataType) {
const CodecClass = getCodecClassWithId(dataType === 'ignore' ? 0 : encodingData.codecId);
if (!CodecClass) {
throw new CramUnimplementedError(`no codec implemented for codec ID ${encodingData.codecId}`);
}
return new CodecClass(encodingData.parameters, dataType, instantiateCodec);
}
//# sourceMappingURL=index.js.map