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 future
fakerator.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 будет очень просто!

Я думаю, что библиотека отличная, и это также отличный шанс внести свой вклад в проект с открытым исходным кодом, поскольку существует гораздо больше случаев использования данных.

До следующего раза!
Продолжайте учиться, продолжайте исследовать.