@chubbyts/chubbyts-decode-encode
Version:
A simple decode/encode solution for json / jsonx / url-encoded / xml / yaml.
31 lines (30 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createUrlEncodedTypeEncoder = void 0;
const qs_1 = require("qs");
const index_1 = require("../index.cjs");
const encodeValue = (value) => {
if ((0, index_1.isObject)(value)) {
return Object.fromEntries(Object.entries(value).map(([subKey, subValue]) => [subKey, encodeValue(subValue)]));
}
if ((0, index_1.isArray)(value)) {
return value.map(encodeValue);
}
if ((0, index_1.isNumber)(value)) {
return value.toString();
}
if ((0, index_1.isBoolean)(value)) {
return value ? 'true' : 'false';
}
if ((0, index_1.isNull)(value)) {
return 'null';
}
return value;
};
const createUrlEncodedTypeEncoder = () => {
return {
encode: (data) => (0, qs_1.stringify)(encodeValue(data), { encodeValuesOnly: true }),
contentType: 'application/x-www-form-urlencoded',
};
};
exports.createUrlEncodedTypeEncoder = createUrlEncodedTypeEncoder;