@modern-kit/utils
Version:
45 lines (40 loc) • 1.31 kB
JavaScript
;
var validatorIsArray = require('../../validator/isArray/index.cjs');
const isValidValue = (value, {
skipNull = true,
skipEmptyString = true,
skipUndefined = true
} = {}) => !(skipUndefined && value === void 0) && !(skipNull && value === null) && !(skipEmptyString && value === "");
const serializeKeyValue = (key, value, options) => {
return isValidValue(value, options) ? `${key}=${value}` : "";
};
const serializeArray = (key, arr, options) => {
let result = "";
for (const value of arr) {
const serializedValue = serializeKeyValue(key, value, options);
if (serializedValue) {
result += result ? `&${serializedValue}` : serializedValue;
}
}
return result;
};
const serializeByType = (key, value, options) => {
if (validatorIsArray.isArray(value)) {
return serializeArray(key, value, options);
}
return serializeKeyValue(key, value, options);
};
function serialize(obj, options = {}) {
const keys = Object.keys(obj);
let result = "";
for (const key of keys) {
const target = obj[key];
const serializedValue = serializeByType(key, target, options);
if (serializedValue) {
result += result ? `&${serializedValue}` : serializedValue;
}
}
return result;
}
exports.serialize = serialize;
//# sourceMappingURL=index.cjs.map