UNPKG

braze-api

Version:

Track users, send messages, export data, and more with Braze API.

63 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildParams = buildParams; const url_1 = require("url"); /** * Build query string params. * * @param parameters - Request parameters. * @returns - Query string. */ function buildParams(parameters) { if (!parameters) { return ''; } const searchParams = Object.entries(parameters).reduce((params, [key, value]) => { if (Array.isArray(value)) { return appendParam(params, `${key}[]`, value); } return appendParam(params, key, value); }, new url_1.URLSearchParams()); return searchParams.toString(); } /** * Append query string param. * * @param searchParams - Search params. * @param key - Key. * @param value - Value. * @returns - URL search params. */ function appendParam(searchParams, key, value) { if (value === undefined || value === null) { return searchParams; } if (Array.isArray(value)) { value.forEach((currentValue) => { appendParam(searchParams, key, currentValue); }); return searchParams; } searchParams.append(key, getValue(key, value)); return searchParams; } /** * Get string value. * * @param key - Key. * @param value - Value. * @returns - String value. */ function getValue(key, value) { switch (typeof value) { case 'boolean': return JSON.stringify(value); case 'string': return value; case 'number': return value.toString(); default: throw new Error(`Unhandled param type for key "${key}"`); } } //# sourceMappingURL=params.js.map