UNPKG

multiformats

Version:

Interface for multihash, multicodec, multibase and CID

35 lines 926 B
export const codec = ({name, code, decode, encode}) => new Codec(name, code, encode, decode); export class Encoder { constructor(name, code, encode) { this.name = name; this.code = code; this.encode = encode; } } export class Decoder { constructor(name, code, decode) { this.name = name; this.code = code; this.decode = decode; } } export 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; } }