UNPKG

twitter-api-client

Version:
61 lines (60 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parse = exports.formatURL = exports.generateHash = exports.createParams = void 0; exports.createParams = function (params, exclude) { if (!params) { return ''; } var searchParams = new URLSearchParams(); Object.entries(params).forEach(function (_a) { var key = _a[0], value = _a[1]; if (exclude === null || exclude === void 0 ? void 0 : exclude.includes(key)) { return; } if (typeof value === 'boolean') { searchParams.append(key, value ? 'true' : 'false'); return; } searchParams.append(key, "" + value); }); return "?" + searchParams.toString(); }; exports.generateHash = function (token) { var seed = 56852; var h1 = 0xdeadbeef ^ seed; var h2 = 0x41c6ce57 ^ seed; for (var i = 0, ch = void 0; i < token.length; i++) { ch = token.charCodeAt(i); h1 = Math.imul(h1 ^ ch, 2654435761); h2 = Math.imul(h2 ^ ch, 1597334677); } h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909); h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909); return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(16); }; exports.formatURL = function (url) { return url .replace(/!/g, '%21') .replace(/'/g, '%27') .replace(/\(/g, '%28') .replace(/\)/g, '%29') .replace(/\*/g, '%2A'); }; exports.parse = function (body) { var parsed = undefined; try { parsed = JSON.parse(body); } catch (error) { } if (parsed) { return parsed; } try { parsed = JSON.parse('{"' + decodeURI(body).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"') + '"}'); } catch (error) { } if (parsed) { return parsed; } return body; };