UNPKG

dop-sdk

Version:

Mini App SDK for JavaScript by VTB

50 lines 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertUnicodeCharactersForAndroid = exports.convertUnicodeCharacters = void 0; function isValidJson(str) { try { JSON.parse(str); } catch (e) { return false; } return true; } function convertUnicodeCharacters(value) { //This will decode the message string that is sent from Native var decoded = Buffer.from(value, 'base64').toString('utf8'); //Few characters like currency, etc., is not decoded properly, // We use following method to decoded it. var octalString = decodeOctalEscape(decoded); var stringifyMessage = JSON.stringify(octalString); var replaced = stringifyMessage.replace(/\\\\/g, '\\'); if (isValidJson(replaced) === true) { return JSON.parse(replaced); } else { return JSON.parse(stringifyMessage); } } exports.convertUnicodeCharacters = convertUnicodeCharacters; var decodeOctalEscape = function (input) { return input.replace(/\\(\d{3})/g, function (match, octalCode) { return String.fromCharCode(parseIntOctal(octalCode)); }); }; var parseIntOctal = function (octalCode) { return Number.parseInt(octalCode, 8); }; function convertUnicodeCharactersForAndroid(value) { //This will decode the message string that is sent from Native var decoded = Buffer.from(value, 'base64').toString('utf8'); var stringifyMessage = JSON.stringify(decoded); var replaced = stringifyMessage.replace(/\\\\/g, '\\'); if (isValidJson(stringifyMessage) === true) { return JSON.parse(stringifyMessage); } else { return JSON.parse(replaced); } } exports.convertUnicodeCharactersForAndroid = convertUnicodeCharactersForAndroid; //# sourceMappingURL=common-bridge.js.map