UNPKG

@walletpack/core

Version:

> TODO: description

81 lines (66 loc) 2.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var nodeCrypto = typeof window === 'undefined' ? require('crypto') : null; var getRandomNumber = function getRandomNumber() { var nodeJsEnv = function nodeJsEnv() { return parseInt(nodeCrypto.randomBytes(8).toString('hex'), 16) / 0xffffffffffffffff; }; var browserEnv = function browserEnv() { var arr = new Uint32Array(1); window.crypto.getRandomValues(arr); return arr[0] / (0xffffffff + 1); }; return nodeCrypto ? nodeJsEnv() : browserEnv(); }; var IdGenerator = /*#__PURE__*/ function () { function IdGenerator() { (0, _classCallCheck2["default"])(this, IdGenerator); } (0, _createClass2["default"])(IdGenerator, null, [{ key: "rand", value: function rand() { return getRandomNumber(); } /*** * Generates a random string of specified size * @param size - The length of the string to generate * @returns {string} - The generated random string */ }, { key: "text", value: function text(size) { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < size; i++) { text += possible.charAt(Math.floor(IdGenerator.rand() * possible.length)); } return text; } /*** * Generates a random number of specified size * @param size - The length of the number to generate * @returns {string} - The generated random number ( as a string ) */ }, { key: "numeric", value: function numeric(size) { var add = 1; var max = 12 - add; if (size > max) return IdGenerator.numeric(max) + IdGenerator.numeric(size - max); max = Math.pow(10, size + add); var min = max / 10, number = Math.floor(IdGenerator.rand() * (max - min + 1)) + min; return ("" + number).substring(add); } }]); return IdGenerator; }(); exports["default"] = IdGenerator;