UNPKG

@datocms/rest-client-utils

Version:
64 lines 2.37 kB
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var ARRAY_INDEX = '__ARRAY_INDEX__'; function buildKey(path) { return path.reduce(function (result, chunk, index) { return index === 0 ? chunk : chunk === ARRAY_INDEX ? "".concat(result, "[]") : "".concat(result, "[").concat(chunk, "]"); }, ''); } function serializeValue(value) { if (typeof value === 'number' || typeof value === 'string') { return value.toString(); } if (value === true) { return 'true'; } if (value === false) { return 'false'; } throw "Don't know how to serialize param value ".concat(JSON.stringify(value)); } export function buildNormalizedParams(value, path) { if (path === void 0) { path = []; } var result = []; if (typeof value === 'number' || typeof value === 'string' || typeof value === 'boolean') { result.push([buildKey(path), serializeValue(value)]); } else if (typeof value === 'object') { if (Array.isArray(value)) { for (var _i = 0, _a = value; _i < _a.length; _i++) { var innerValue = _a[_i]; for (var _b = 0, _c = buildNormalizedParams(innerValue, __spreadArray(__spreadArray([], path, true), [ ARRAY_INDEX, ], false)); _b < _c.length; _b++) { var param = _c[_b]; result.push(param); } } } else if (value) { for (var _d = 0, _e = Object.entries(value); _d < _e.length; _d++) { var _f = _e[_d], key = _f[0], innerValue = _f[1]; for (var _g = 0, _h = buildNormalizedParams(innerValue, __spreadArray(__spreadArray([], path, true), [key], false)); _g < _h.length; _g++) { var param = _h[_g]; result.push(param); } } } } return result; } //# sourceMappingURL=buildNormalizedParams.js.map