@modern-kit/utils
Version:
43 lines (39 loc) • 1.26 kB
JavaScript
import { isArray } from '../../validator/isArray/index.mjs';
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 (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;
}
export { serialize };
//# sourceMappingURL=index.mjs.map