@walletpack/core
Version:
> TODO: description
81 lines (66 loc) • 2.3 kB
JavaScript
;
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;