Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 3x 1x 1x 3x 3x 4x 3x 1x 1x 1x 32x 32x 1x 3x | /** * Sleep n milliseconds. * @param {number} ms * @return {Promise} */ const sleep = async (ms) => { return new Promise(resolve => { setTimeout(resolve, ms); }); }; /** * Converts base64 string to URL safe base64 * @param {String} base64String * @return {String} url safe base64 */ const base64ToURLSafe = (base64String) => { const INVALID_CHARS = { '+': '-', '/': '_', '=': '', }; return base64String.replace(/[+/=]/g, (m) => INVALID_CHARS[m]); }; /** * Convert given Base64 string to hex and * return result. * @param {string} base64String * @return {string} in hex */ const base64ToHex = (base64String) => { const proc = atob(base64String); let result = ''; for (let i = 0; i < proc.length; i++) { const hex = proc.charCodeAt(i).toString(16); result += (hex.length === 2 ? hex : '0' + hex); } return result; }; module.exports = { sleep, base64ToURLSafe, base64ToHex, }; |