@berish/mvc-router5-plugin
Version:
Router5 plugin for @berish/mvc-core
30 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildQueryParameters = void 0;
function buildQueryParameters(params) {
const keyBuild = (key, value) => {
if (!value && typeof value !== 'boolean' && typeof value !== 'number')
return { [key]: null };
if (typeof value === 'number' || typeof value === 'string' || typeof value === 'boolean')
return { [key]: value.toString() };
if (Array.isArray(value)) {
if (value.length === 0)
return { [key]: '[]' };
return value
.map((m, i) => keyBuild(key + '.' + i, m))
.filter((m) => !!m)
.reduce((out, build) => (Object.assign(Object.assign({}, out), build)), {});
}
if (typeof value === 'object' &&
value === Object(value) &&
Object.prototype.toString.call(value) !== '[object Array]')
return Object.keys(value)
.map((m) => keyBuild(key ? key + '.' + m : m, value[m]))
.filter((m) => !!m)
.reduce((out, build) => (Object.assign(Object.assign({}, out), build)), {});
return null;
};
return keyBuild(null, params);
}
exports.buildQueryParameters = buildQueryParameters;
//# sourceMappingURL=buildQueryParameters.js.map