@ipfn/cell-codecs
Version:
IPFN cell codecs
33 lines (32 loc) • 993 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const varintTable = require("multicodec/src/varint-table");
const util_1 = require("multicodec/src/util");
exports.CODEC_BY_HEX = {};
exports.CODEC_BY_NAME = {};
function register(codec) {
if (codec.hex) {
const base = Buffer.from(codec.hex, 'hex');
const varint = util_1.varintBufferEncode(base);
varintTable[codec.name] = varint;
exports.CODEC_BY_HEX[codec.hex] = codec;
}
exports.CODEC_BY_NAME[codec.name] = codec;
}
exports.register = register;
function codecByName(name) {
const codec = exports.CODEC_BY_NAME[name];
if (!codec) {
throw new Error(`cell codec not found: "${name}"`);
}
return codec;
}
exports.codecByName = codecByName;
function codecByHex(hex) {
const codec = exports.CODEC_BY_HEX[hex];
if (!codec) {
throw new Error(`cell codec not found: "${hex}"`);
}
return codec;
}
exports.codecByHex = codecByHex;