UNPKG

@chubbyts/chubbyts-decode-encode

Version:

A simple decode/encode solution for json / jsonx / url-encoded / xml / yaml.

20 lines (19 loc) 733 B
export class DecodeError extends Error { constructor(message, stack) { super(message); this.stack = stack; } } export const createDecoder = (decoderTypes) => { const decoderTypeMap = new Map(decoderTypes.map((DecoderType) => [DecoderType.contentType, DecoderType])); const contentTypes = Array.from(decoderTypeMap.keys()); return { decode: (encodedData, contentType) => { if (decoderTypeMap.has(contentType)) { return decoderTypeMap.get(contentType).decode(encodedData); } throw new Error(`Unsupported contentType "${contentType}", supported contentTypes are "${contentTypes.join('", "')}".`); }, contentTypes, }; };