multiformats
Version:
Interface for multihash, multicodec, multibase and CID
45 lines (41 loc) • 1.08 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
const codec = ({name, code, decode, encode}) => new Codec(name, code, encode, decode);
class Encoder {
constructor(name, code, encode) {
this.name = name;
this.code = code;
this.encode = encode;
}
}
class Decoder {
constructor(name, code, decode) {
this.name = name;
this.code = code;
this.decode = decode;
}
}
class Codec {
constructor(name, code, encode, decode) {
this.name = name;
this.code = code;
this.encode = encode;
this.decode = decode;
}
get decoder() {
const {name, code, decode} = this;
const decoder = new Decoder(name, code, decode);
Object.defineProperty(this, 'decoder', { value: decoder });
return decoder;
}
get encoder() {
const {name, code, encode} = this;
const encoder = new Encoder(name, code, encode);
Object.defineProperty(this, 'encoder', { value: encoder });
return encoder;
}
}
exports.Codec = Codec;
exports.Decoder = Decoder;
exports.Encoder = Encoder;
exports.codec = codec;
;