UNPKG

@bothive/helpers

Version:

Collection of helper functions mainly used inside bothive-core project

66 lines 2.1 kB
"use strict"; 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