@exchanges/binance
Version:
Exchange provider for Binance API
39 lines • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeQueryString = void 0;
/**
* Build query string for uri encoded url based on json object
*/
const makeQueryString = (obj) => {
if (!obj)
throw new TypeError('makeQueryString obj is empty');
if (typeof obj !== 'object')
throw new TypeError('makeQueryString obj is not object');
const entries = Object.entries(obj);
if (entries.length <= 0)
return '';
return convertObject(obj);
};
exports.makeQueryString = makeQueryString;
function convertPrimitive(input) {
return encodeURIComponent(input);
}
function convertObject(input) {
return Object.entries(input)
.map(([key, value]) => {
if (typeof value === 'undefined' || value === null)
return null;
if (typeof value === 'object' && !Array.isArray(value)) {
return `${convertPrimitive(key)}=${convertPrimitive(JSON.stringify(value))}`;
}
if (Array.isArray(value)) {
// const data = value.map((item) => convertPrimitive(JSON.stringify(item))).join(',');
// return `${convertPrimitive(key)}=[${data}]`;
return `${convertPrimitive(key)}=[${value.map((item) => convertPrimitive(JSON.stringify(item))).join(',')}]`;
}
return `${convertPrimitive(key)}=${convertPrimitive(value)}`;
})
.filter(Boolean)
.join('&');
}
//# sourceMappingURL=makeQueryString.js.map