@bothive/helpers
Version:
Collection of helper functions mainly used inside bothive-core project
66 lines • 2.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const array_helpers_1 = (0, tslib_1.__importDefault)(require("./array.helpers"));
function generateRandomToken({ length } = { length: 24 }) {
const values = "abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_";
let token = "";
for (let i = 0; i < length; i++) {
token += array_helpers_1.default.getRandomValue(values);
}
return token;
}
function generateId({ length } = { length: 20 }) {
const timestamp = Date.now().toString(16);
return `${timestamp}${generateRandomToken({ length })}`;
}
function createSlug({ string, suffix }) {
if (suffix) {
string = `${string} ${suffix}`;
}
return string
.replace(/[^\sa-zA-Z0-9_]/g, "")
.split(" ")
.join("_")
.toLowerCase();
}
function generateSlug({ string, slugValidator, }) {
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
let result;
let slug;
let index = 0;
do {
const suffix = index ? generateRandomToken({ length: 6 }) : undefined;
slug = createSlug({ string, suffix });
result = yield slugValidator(slug);
index += 1;
} while (result !== null);
return slug;
});
}
function getRandomColor() {
const color = `#${Math.floor(Math.random() * 16777215).toString(16)}`;
const paddedColor = color.padEnd(7, "0");
return paddedColor;
}
function generateVerificationCode({ length } = { length: 6 }) {
const values = "1234567890";
let token = "";
for (let i = 0; i < length; i++) {
token += values.substr(Math.floor(Math.random() * values.length), 1);
}
return token;
}
function randomNumber({ max, min }) {
return Math.floor(Math.random() * (max + 1 - min)) + min;
}
exports.default = {
generateRandomToken,
generateId,
createSlug,
getRandomColor,
generateSlug,
generateVerificationCode,
randomNumber,
};
//# sourceMappingURL=generator.helpers.js.map