Last active
September 3, 2022 20:17
-
-
Save iMoses/28da9ceb884f46f927331954b577f655 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const qsPrimitivesDecoder = (value, defaultDecoder, charset, type) => | |
(type === "key" ? defaultDecoder : convertFromString)(value); | |
function convertFromString(value) { | |
if (typeof value === "undefined" || value === "") { | |
return null; | |
} else if (value === "false" || value === "true") { | |
return value === "true"; | |
} else if (Array.isArray(value)) { | |
return value.map(convertFromString); | |
} else if (value.constructor === Object) { | |
return Object.keys(value).reduce((result, key) => { | |
result[key] = convertFromString(value[key]); | |
return result; | |
}, {}); | |
} else if (!isNaN(parseFloat(value)) && isFinite(value)) { | |
return Number(value); | |
} | |
return value; | |
} |
Author
iMoses
commented
Dec 7, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment