UNPKG

@sanity/form-builder

Version:
32 lines (31 loc) 951 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = randomKey; var _getRandomValues = _interopRequireDefault(require("get-random-values")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // WHATWG crypto RNG - https://w3c.github.io/webcrypto/Overview.html function whatwgRNG() { var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16; var rnds8 = new Uint8Array(length); (0, _getRandomValues.default)(rnds8); return rnds8; } var getByteHexTable = (() => { var table; return () => { if (table) { return table; } table = []; for (var i = 0; i < 256; ++i) { table[i] = (i + 0x100).toString(16).substring(1); } return table; }; })(); function randomKey(length) { var table = getByteHexTable(); return whatwgRNG(length).reduce((str, n) => str + table[n], '').slice(0, length); }