one-linear-validator 🧪

🔍 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
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
---