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