@chubbyts/chubbyts-decode-encode
Version:
A simple decode/encode solution for json / jsonx / url-encoded / xml / yaml.
25 lines (24 loc) • 924 B
JavaScript
;
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;