UNPKG

one-linear-validator

Version:

A minimalist, dependency-free JavaScript validation library with one-liner functions for validating emails, Strong Password, phone numbers, URLs, hex colors, and dates.

125 lines (91 loc) โ€ข 3.15 kB
# one-linear-validator ๐Ÿงช [![npm version](https://img.shields.io/npm/v/one-linear-validator.svg)](https://www.npmjs.com/package/one-linear-validator) [![npm total downloads](https://img.shields.io/npm/dt/one-linear-validator.svg)](https://www.npmjs.com/package/one-linear-validator) [![License](https://img.shields.io/npm/l/one-linear-validator.svg)](https://github.com/MalikAhsan123/one-linear-validator/blob/main/LICENSE) [![Bundle Size](https://img.shields.io/bundlephobia/minzip/one-linear-validator)](https://bundlephobia.com/package/one-linear-validator) [![Issues](https://img.shields.io/github/issues/MalikAhsan123/one-linear-validator)](https://github.com/MalikAhsan123/one-linear-validator/issues) > ๐Ÿ” A minimalist, dependency-free JavaScript validation library with one-liner functions for common input formats like Email, Phone, URL, Hex Color, Date, and Strong Passwords โ€” returns clean structured results with error messages. --- ## โœจ Features - โœ… Email validation - ๐Ÿ“ฑ Phone number validation - ๐ŸŒ URL validation - ๐ŸŽจ Hex color code validation - ๐Ÿ“… Date (YYYY-MM-DD) validation - ๐Ÿ”’ Strong password checker (with custom rules) - โšก๏ธ Lightweight & fast - โŒ No external dependencies - โœ… ESM support (Node.js & modern browsers) --- ## ๐Ÿ“ฆ Installation ```bash npm install one-linear-validator or with yarn: yarn add one-linear-validator ๐Ÿš€ Usage import { isEmail, isPhoneNumber, isURL, isHexColor, isDate, isStrongPassword, } from 'one-linear-validator'; console.log(isEmail('test@example.com')); // { valid: true } console.log(isPhoneNumber('+1234567890')); // { valid: true } console.log(isURL('https://example.com')); // { valid: true } console.log(isHexColor('#ffcc00')); // { valid: true } console.log(isDate('2024-05-06')); // { valid: true } console.log(isStrongPassword('Password@123')); // { valid: true } ๐Ÿ“š API Reference Each validator returns an object: { valid: true } // or { valid: false, error: 'Reason here' } isEmail(str) Checks for a valid email format. isPhoneNumber(str) Accepts international formats, with or without +. isURL(str) Matches HTTP/HTTPS URLs, domains, optional port and path. isHexColor(str) Supports #RGB, #RRGGBB, or without #. isDate(str) Accepts date in YYYY-MM-DD format. isStrongPassword(str, options?) Checks password strength with default or custom rules. Options: { minLength: 8, uppercase: true, number: true, specialChar: true } โœ… Example with Custom Password Rules isStrongPassword('abc123', { minLength: 6, uppercase: false, number: true, specialChar: false, }); ๐Ÿ’ก Why one-linear-validator? โœ… Clean return values โœ… Simple integration โœ… Great for forms, APIs, and input sanitization โœ… Developer-friendly messages ๐Ÿ› ๏ธ Contributing Pull requests and suggestions are welcome! Open an issue or fork and create a PR. ๐Ÿ“„ License Licensed under the Apache-2.0 License. ๐ŸŒ Links ๐Ÿ“ฆ NPM Page ๐Ÿ›  GitHub Repo Built with โค๏ธ by Muhammad Ahsan Raza ---