Несколько дней назад я опубликовал пост Как создать и опубликовать свой первый пакет NPM. Я понимаю, что опубликовать пакет npm очень просто. Я решил очень просто создать валидатор полей формы и попросить разработчиков внести свой вклад в это.

Я создал библиотеку npm и опубликовал ее в NPM и Github, чтобы очень легко проверять поля формы. Давайте посмотрим, что он может сделать?

Установка

npm install is-validate

импорт

Способ 1 для импорта

const { isEmail } =  require("is-validate")

Способ 2 для импорта

const isValidate = require('is-validate');

Все методы

- электронная почта

Пример:

//method 1
const { isEmail } =  require("is-validate")
console.log(isEmail('[email protected]'))
// true
// method 2
const isValidate = require('is-validate');
console.log(isValidate.isEmail('[email protected]'))
// true

Все остальные функции будут работать, поэтому я не буду приводить примеры для каждого метода

- это телефон

- URL-адрес

- isDate

- время

- номер

- это строка

- isObject

- isBoolean

- тип

- isContain

Пример:

console.log(isContains('Hello world', 'Hello'))

Код пакета

/*
 * This method accepts a string as its argument and returns true or false whether given string is email or not
*/
const isEmail = (email) => {
    let re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(email).toLowerCase());
    return re;
}
/*
 * This method accepts a string as its argument and returns true or false whether a given string is phone or not
*/
const isPhone = (phone) => {
    let is_phone = /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im.test(phone);
    return is_phone;
}
/*
 * This method accepts a string as its argument and returns true or false whether given string is URL or not
*/
const isUrl = (string) => {
    let url;
    try { url = new URL(string); } catch (_) { return false; }
    return url.protocol === "http:" || url.protocol === "https:";
}
/*
 * This method accepts a string as its argument and returns true or false whether given string is date or not
*/
const isDate = (date) => {
    return (new Date(date) !== "Invalid Date") && !isNaN(new Date(date));
}
/*
 * This method accepts a string as its argument and returns true or false whether given string is time or not HH: MM
*/
const isTime = (time) => {
    var isValid = /^([0-1][0-9]|2[0-3]):([0-5][0-9])$/.test(time);
    return isValid;
}
/*
 * This method given argument is number or not
*/
const isNumber = (number) => {
    if(typeof number == 'number'){ return true;}
    return false;
}
/*
 * This method given argument is a string or not
*/
const isString = (string) => {
    if(typeof string == 'string'){ return true;}
    return false;
}
/*
 * This method given argument is boolean or not
*/
const isBoolean = (boolean) => {
    if(typeof boolean == 'boolean'){ return true;}
    return false;
}
/*
 * This method given argument is object or not
*/
const isObject = (object) => {
    if(typeof object == 'object'){ return true;}
    return false;
}
/*
 * This method will return the type of argument passed
*/
const isType = (data) => {
    return typeof data;
}
/*
 * This method will return true or false based on a string containing a substring.
*/
const isContains = (string, substring) => {
    return string.includes(substring)
}
module.exports = {
    isEmail, isPhone, isUrl, isDate, isTime, isNumber, isString, isObject, isBoolean, isType, isContains
};

В файле index.js я написал код для проверки и определил функции для выполнения проверки.

Зачем вносить свой вклад?

Это первый вопрос, который приходит на ум всякий раз, когда мы думаем начать участвовать в проекте с открытым исходным кодом. Обратитесь к этому URL-адресу, чтобы узнать, почему вам нужно внести свой вклад в открытый исходный код.

Как внести свой вклад?

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

  • Клонировать репозиторий с Github

git clone https://github.com/harendra21/is-validate

  • Создать будущую ветку

Вы должны создать новую ветку с именем feature-validate-email

  • Добавить новую функцию в index.js и экспортировать ее
  • Протестировать вновь созданную функцию

Чтобы протестировать ваш пакет локально (очень важно), вы должны установить среду. Пожалуйста, обратитесь к тестовой части этой статьи.

  • Push-код
  • Готово

После этого я вручную просмотрю код, объединим его с мастером и опубликую изменения в NPM.

Спасибо, что прочитали эту статью, не забудьте подписаться на меня.