@sanity/form-builder
Version:
Sanity form builder
32 lines (31 loc) • 951 B
JavaScript
;
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);
}