UNPKG

@chubbyts/chubbyts-decode-encode

Version:

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

27 lines (26 loc) 798 B
import { stringify } from 'qs'; import { isArray, isBoolean, isNull, isNumber, isObject } from '../index.js'; const encodeValue = (value) => { if (isObject(value)) { return Object.fromEntries(Object.entries(value).map(([subKey, subValue]) => [subKey, encodeValue(subValue)])); } if (isArray(value)) { return value.map(encodeValue); } if (isNumber(value)) { return value.toString(); } if (isBoolean(value)) { return value ? 'true' : 'false'; } if (isNull(value)) { return 'null'; } return value; }; export const createUrlEncodedTypeEncoder = () => { return { encode: (data) => stringify(encodeValue(data), { encodeValuesOnly: true }), contentType: 'application/x-www-form-urlencoded', }; };