Простая библиотека без зависимостей для генерации случайных кодов для Node.js
Эта библиотека использует встроенный в Node.js модуль crypto для эффективной генерации случайных цифровых последовательностей, также вы можете написать собственную функцию для генерации последовательностей используя простой контракт: function (charCount: number <MAX 10>) => string
Если вам нужны исключительно цифровые коды - вы можете просто использовать функцию getDigitalCode
const { getDigitalCode } = require('node-verification-code')
const smsVerificationCodeBuffer = getDigitalCode(4) // Возвращает nodejs буфер, содержащий 4 случайных цифры
// sendSms(phone, smsVerificationCodeBuffer.toString())Библиотека работает на базе двух сущностей:
- генератор - функция для генерации
Bufferсо случайным содержимым требуемой длины использующая функцию-последовательность - последовательность - функция для построения строк из случайных элементов (до 10 символов)
Хотя размер последовательности ограничен 10 символами, это не означает что вы не сможете генерировать более длинные коды. Функция-последовательность будет вызывана несколько раз для получения кода требуемой длины.
Библиотека предоставляет несколько вспомогательных функций для изменения поведения под ваши задачи. Например, если вам нужно использовать собственный алфавит, то самый простой способ - использовать вспомогательную функцию sequenceFromAlphabet, как показано в примере ниже:
const { sequenceFromAlphabet, createGenerator } = require('node-verification-code')
// Создаём последовательность из алфавита - массива с символами
const emojiSequence = sequenceFromAlphabet(['🐶', '🐱', '🐭', '🐹', '🐰'])
// Создаём генератор на основе последовательности
const getEmojiCode = createGenerator(emojiSequence)
// Генерируем случайные последовательности символов алфавита
getEmojiCode(4).toString() // -> Например: 🐹🐭🐹🐰Кроме того, вы можете составить собственную функцию-последовательность вручную:
const { createGenerator } = require('node-verification-code')
// Не используйте Math.random, показано только в демонстративных целях
const mathRandomSequence = (charCount) => '0'.repeat(charCount).replaceAll('0', () => Math.floor(Math.random() * 10))
// Создаём генератор из последовательности
const makeMyOwnVerificationCode = createGenerator(mathRandomSequence)
makeMyOwnVerificationCode(4).toString() // -> for example: '2108'npm install node-verification-codenpm run test👤 Томинов Сергей
- Website: https://ikfi.ru
- Dzen: @tominoff
- Github: @ikenfin
Поставьте ⭐️ этому репозиторию, если проект помог вам!
This README was generated with ❤️ by readme-md-generator