UNPKG

multiformats

Version:

Interface for multihash, multicodec, multibase and CID

45 lines (41 loc) 1.08 kB
'use strict'; 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;