UNPKG

@modern-kit/utils

Version:
45 lines (40 loc) 1.31 kB
'use strict'; 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