UNPKG

@chubbyts/chubbyts-decode-encode

Version:

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

25 lines (24 loc) 924 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDecoder = exports.DecodeError = void 0; class DecodeError extends Error { constructor(message, stack) { super(message); this.stack = stack; } } exports.DecodeError = DecodeError; 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, }; }; exports.createDecoder = createDecoder;