5 минут о Javascript — Fakerator.js
Эта статья является частью серии статей о функциях JavaScript. Цель этой серии — кратко объяснить (до 5 минут чтения) определенную функцию/библиотеку/концепцию или что-то еще, связанное с Javascript, чтобы вы были в восторге. и узнайте об этом.
Поговорим о библиотеке https://github.com/icebob/fakerator.
При написании приложения, будь то серверное или клиентское приложение, оно обычно включает данные.
Во время написания приложения мы подходим к моменту, когда хотим его протестировать или увидеть в действии, но проблема в том, что у нас нет данных для работы! Поэтому мы либо сами начинаем заполнять данные в БД, либо просто пишем какие-то встроенные данные в клиентское приложение.
Но что, если нам нужно количество случайных, изменяющихся, разнообразных данных? Вот где мы можем использовать библиотеку Fakerator.
Инициализировать
npm install fakerator
Мы можем использовать библиотеку в браузере и в любом приложении узла:
import Fakerator from 'fakerator'
const fakerator = Fakerator();
Покажи мне API!
Случайный
Случайные логические значения, числа, цифры, буквы — всего этого можно добиться с помощью библиотеки:
fakerator.random.boolean();
fakerator.random.number(max); // max number limit
fakerator.random.digit();
fakerator.random.letter();
Даже случайная строка определенной длины:
fakerator.random.string(length);
Как насчет случайного элемента из массива или объекта?
fakerator.random.arrayElement(array);
fakerator.random.objectElement(obj);
И даже больше! взгляните на документы API.
Генераторы
Имена
От имени и фамилии до полного имени — мы можем генерировать мужские и женские имена, мы можем добавлять префикс (например, «мистер») и суффикс (например, «MD») и многое другое.
Вот некоторые примеры:
fakerator.names.name(); // Generate a full name
fakerator.names.firstName(); // Generate a first name
fakerator.names.lastNameF(); // Generate a female last name
Адрес
Мы можем использовать библиотеку для подделки данных адресов. Это хорошо для данных пользователей или для имитации регистрационных форм.
fakerator.address.country(); // Generate a country name
fakerator.address.city(); // Generate a city name
fakerator.address.street(); // Generate a full street address
Есть поддержка почтового индекса, кода страны, номера здания и многого другого!
Номер телефона
fakerator.phone.number();
Интернет-данные
Это очень полезно для регистрации и входа в систему, а также для любых пользовательских данных.
fakerator.internet.userName(); // Generate a user name
fakerator.internet.email(); // Generate a user email
fakerator.internet.avatar(); // Generate a user avatar
Есть еще много функций интернет-данных! проверьте это в документах библиотеки.
Lorem
Кто не любит lorem ipsum??
fakerator.lorem.word(); // Lorem word
fakerator.lorem.sentence(); // Lorem sentence!
fakerator.lorem.paragraph(); // Lorem Paragraph!!
Отлично подходит для тестирования произвольных данных (длинные посты, фид и т. д.).
Дата и время
Во многих случаях мы хотим отобразить, когда произошло событие (когда пользователь был в последний раз активен, когда была совершена транзакция, когда пользователь опубликовал сообщение о состоянии, и т.д).
fakerator.date.future(years, refDate); //
Generate a date in the futurefakerator.date.month(); // Generate a month fakerator.date.weekday(); // Generate a week day
Я рекомендую использовать moment.js для работы с датами и временем.
Разное
fakerator.misc.uuid(); // Generate a uuid
uuids отлично подходят для генерации уникальных пользователей!
Сущности
Сущности — это комбинации данных, о которых мы упоминали ранее.
Например, сущность пользователя — это объект с именем пользователя, адресом электронной почты, номером телефона, именем, фамилией. и другие пользовательские данные.
fakerator.entity.user(); // Generate a user object with user data fakerator.entity.address(); // Generate an object with a full address data fakerator.entity.post(); // Generate a blog post data! very cool
Объект сообщения содержит такие данные, как заголовок, ключевое слово (отлично подходит для хэш-тегов), отметку времени «создания» и контент.
Мы можем легко создавать сущности самостоятельно, используя предыдущие методы, или добавлять дополнительные поля к встроенным сущностям фейкератора.
Утилиты
Times
Что, если нам нужно много имен или объектов пользователей?
Fakerator предоставляет вспомогательный метод times для поддержки этой функции:
fakerator.times(fakerator.names.name, 3); // Generates an array with 3 names fakerator.times(fakerator.populate, 5, "#{internet.userName}", "John"); // // Generate 5 username with populate where first name must be 'John'
Шаблоны
Fakerator поддерживает шаблоны.
fakerator.populate("Hi, my name is #{names.name}. I was born in #{address.city}, #{address.country}. I am #{date.age} years old."); // Hi, my name is Mrs. Rufus Shanahan. I was born in Hilpertton, Denmark. I am 44 years old.
Заменить символы
Метод заполнения заменяет символ #
случайным числом, а символ ?
— случайной буквой.
fakerator.populate("#{names.firstName}-###-???") // Mandy-802-oqs
Локализация
Пакет поддерживает локализацию, вы можете увидеть коды стран в документации пакета.
Есть и другие сценарии, в которых мы можем использовать Fakerator.
Например, если у нас есть приложение, которое работает с развернутым бэкендом, и наше приложение зависит от данных BE, и мы хотим работать в автономном режиме?
В этом случае хорошо иметь флаг, который, как только он появится в приложении, будет использовать поддельные данные. Таким образом, мы можем работать исключительно локально.
Также хорошо протестировать поведение пользовательского интерфейса перед подключением его к BE, мы можем смоделировать ответ BE (используя Fakerator) и реализовать все пограничные случаи FrontEnd (FE). Как только мы будем готовы, подключить его к BE будет очень просто!
Я думаю, что библиотека отличная, и это также отличный шанс внести свой вклад в проект с открытым исходным кодом, поскольку существует гораздо больше случаев использования данных.
До следующего раза!
Продолжайте учиться, продолжайте исследовать.