react-native-surveys
Version:
Build your own forms, surveys and polls for your React Native apps.
35 lines (31 loc) • 891 B
JavaScript
import base64 from "./react-native-base64";
export function encodeData(data) {
const decoded = base64.encode(data);
return reverseString(decoded.replace(/=/g, "").replace(/\0/g, ""));
}
export function decodeData(data) {
const parameters = base64.decode(reverseString(data));
return queryStringToJSON(parameters.replace(/\0/g, ""));
}
function reverseString(str) {
return str
.split("")
.reverse()
.join("");
}
export function jsonToQueryString(json) {
return Object.keys(json)
.map(function(key) {
return encodeURIComponent(key) + "=" + encodeURIComponent(json[key]);
})
.join("&");
}
function queryStringToJSON(string) {
let pairs = string.split("&");
let result = {};
pairs.forEach(function(pair) {
pair = pair.split("=");
result[pair[0]] = decodeURIComponent(pair[1] || "");
});
return JSON.parse(JSON.stringify(result));
}