basicsetupdart 1.0.0+1
basicsetupdart: ^1.0.0+1 copied to clipboard
A comprehensive Flutter utility library providing essential functions for date operations, validations, and common tasks.
Basic Utils #
A comprehensive Flutter utility library providing essential functions for date operations, validations, string manipulations, number operations, file handling, and network utilities.
Features #
📅 Date Utils #
- Get current date/time in custom formats
- Convert between string and DateTime objects
- Calculate date differences in various units
- Date arithmetic operations (add days, months, years)
- Leap year and age calculations
- Date validation and formatting
✅ Validation Utils #
- Email, URL, and phone number validation
- Indian-specific validations (PAN, GST, Aadhaar, IFSC, UPI)
- Password strength validation
- Credit card validation using Luhn algorithm
- Aadhaar validation using Verhoeff algorithm
- String type validations (alphabets, numbers, alphanumeric)
🔤 String Utils #
- Case conversions (camelCase, snake_case, kebab-case)
- Text manipulation (capitalize, reverse, truncate)
- String analysis (palindrome, word count)
- Data extraction (emails, URLs, numbers)
- Currency formatting and slug generation
- Random string generation and masking
🔢 Number Utils #
- Number formatting with commas
- Number to words conversion (Indian format)
- Mathematical operations (factorial, GCD, LCM)
- Prime number and even/odd checks
- Interest calculations (simple and compound)
- Unit conversions (temperature, length, weight)
- Random number generation
📁 File Utils #
- File path operations and validation
- File type detection (image, video, audio, document)
- MIME type identification
- File name sanitization and unique naming
- Human-readable file size formatting
- Path normalization and joining
🌐 Network Utils #
- IP address validation (IPv4/IPv6)
- MAC address validation
- URL parsing and manipulation
- HTTP status code analysis
- Port validation and categorization
- Domain and protocol extraction
- User agent generation
Installation #
Add this to your package's pubspec.yaml file:
dependencies:
basic_utils: ^1.0.0
Then run:
flutter pub get
Usage #
Import the library #
import 'package:basic_utils/basic_utils.dart';
Date Utils Examples #
// Get current date/time in custom format
String currentDate = DateUtils.getCurrentDateTime(format: 'dd/MM/yyyy');
print(currentDate); // Output: 15/12/2023
// Convert string to DateTime
DateTime? date = DateUtils.stringToDate('2023-12-15', format: 'yyyy-MM-dd');
// Convert DateTime to string
String dateString = DateUtils.dateToString(DateTime.now(), format: 'dd-MM-yyyy');
// Calculate date difference
int days = DateUtils.getDateDifference(
DateTime(2023, 1, 1),
DateTime(2023, 12, 31),
unit: 'days'
);
// Check if year is leap year
bool isLeap = DateUtils.isLeapYear(2024);
// Calculate age
int age = DateUtils.getAge(DateTime(1990, 5, 15));
Validation Utils Examples #
// Email validation
bool isValidEmail = ValidationUtils.checkValidEmail('user@example.com');
// URL validation
bool isValidUrl = ValidationUtils.checkValidUrl('https://www.google.com');
// Indian PAN validation
bool isValidPAN = ValidationUtils.checkValidPanNumber('ABCDE1234F');
// Indian GST validation
bool isValidGST = ValidationUtils.checkValidGSTNumber('22ABCDE1234F1Z5');
// Indian mobile number validation
bool isValidMobile = ValidationUtils.checkValidIndianMobileNumber('9876543210');
// Password validation
bool isValidPassword = ValidationUtils.checkValidPassword(
'MySecure123!',
minLength: 8,
requireUppercase: true,
requireLowercase: true,
requireNumbers: true,
requireSpecialChars: true,
);
// Credit card validation
bool isValidCard = ValidationUtils.checkValidCreditCardNumber('4111111111111111');
String Utils Examples #
// Case conversions
String camelCase = StringUtils.toCamelCase('hello world example');
String snakeCase = StringUtils.toSnakeCase('HelloWorldExample');
String kebabCase = StringUtils.toKebabCase('HelloWorldExample');
// Text manipulation
String capitalized = StringUtils.capitalizeWords('hello world');
String reversed = StringUtils.reverse('hello');
bool isPal = StringUtils.isPalindrome('racecar');
// String analysis
String truncated = StringUtils.truncate('This is a very long string', 15);
String masked = StringUtils.maskString('1234567890', visibleStart: 2, visibleEnd: 2);
// Data extraction
List<int> numbers = StringUtils.extractNumbers('Price is 100 and tax is 15');
List<String> emails = StringUtils.extractEmails('Contact us at support@example.com');
// Currency formatting
String currency = StringUtils.formatCurrency(12345.67); // ₹ 12,345.67
// Slug generation
String slug = StringUtils.toSlug('Hello World! This is a test.'); // hello-world-this-is-a-test
Number Utils Examples #
// Number formatting
String formatted = NumberUtils.formatWithCommas(1234567); // 1,234,567
String formattedDouble = NumberUtils.formatWithCommasDouble(1234567.89); // 1,234,567.89
// Number to words (Indian format)
String words = NumberUtils.numberToWords(1234); // One Thousand Two Hundred Thirty Four
// Ordinal numbers
String ordinal = NumberUtils.toOrdinal(21); // 21st
// Mathematical operations
bool isEven = NumberUtils.isEven(42);
bool isPrime = NumberUtils.isPrime(17);
int factorial = NumberUtils.factorial(5); // 120
int gcd = NumberUtils.gcd(48, 18); // 6
int lcm = NumberUtils.lcm(12, 18); // 36
// Interest calculations
double simpleInterest = NumberUtils.calculateSimpleInterest(10000, 0.05, 2);
double compoundInterest = NumberUtils.calculateCompoundInterest(10000, 0.05, 2);
// Unit conversions
double celsius = NumberUtils.convertTemperature(32, 'fahrenheit', 'celsius');
double meters = NumberUtils.convertLength(100, 'cm', 'm');
double kg = NumberUtils.convertWeight(1000, 'g', 'kg');
File Utils Examples #
// File path operations
String extension = FileUtils.getFileExtension('/path/to/file.txt'); // txt
String fileName = FileUtils.getFileName('/path/to/file.txt'); // file.txt
String nameWithoutExt = FileUtils.getFileNameWithoutExtension('/path/to/file.txt'); // file
String directory = FileUtils.getDirectoryPath('/path/to/file.txt'); // /path/to
// File type detection
bool isImage = FileUtils.isImageFile('image.jpg');
bool isVideo = FileUtils.isVideoFile('video.mp4');
bool isAudio = FileUtils.isAudioFile('audio.mp3');
bool isDocument = FileUtils.isDocumentFile('document.pdf');
// MIME type
String mimeType = FileUtils.getMimeType('image.png'); // image/png
// File size formatting
String size = FileUtils.getHumanReadableFileSize(1024000); // 1.0 MB
// File name operations
String sanitized = FileUtils.sanitizeFileName('file<>name?.txt'); // file_name.txt
String unique = FileUtils.generateUniqueFileName('document.pdf', prefix: 'backup');
Network Utils Examples #
// IP address validation
bool isValidIP = NetworkUtils.isValidIPAddress('192.168.1.1');
bool isValidIPv4 = NetworkUtils.isValidIPv4Address('192.168.1.1');
bool isValidIPv6 = NetworkUtils.isValidIPv6Address('2001:0db8:85a3:0000:0000:8a2e:0370:7334');
// MAC address validation
bool isValidMAC = NetworkUtils.isValidMACAddress('00:1B:44:11:3A:B7');
// URL operations
String? domain = NetworkUtils.extractDomain('https://www.example.com/path'); // www.example.com
String? protocol = NetworkUtils.extractProtocol('https://www.example.com'); // https
bool isHttps = NetworkUtils.isHttps('https://www.example.com');
// Port operations
int? httpPort = NetworkUtils.getDefaultPort('http'); // 80
bool isValidPort = NetworkUtils.isValidPort(8080);
bool isWellKnown = NetworkUtils.isWellKnownPort(80);
// HTTP status codes
bool isSuccess = NetworkUtils.isSuccessStatusCode(200);
Map<String, String> statusInfo = NetworkUtils.parseHttpStatusCode(404);
// IP conversions
int? ipInt = NetworkUtils.ipToInt('192.168.1.1'); // 3232235777
String ip = NetworkUtils.intToIP(3232235777); // 192.168.1.1
API Reference #
DateUtils #
getCurrentDateTime({String format})- Get current date/time in specified formatstringToDate(String dateString, {String format})- Convert string to DateTimedateToString(DateTime date, {String format})- Convert DateTime to stringgetDateDifference(DateTime startDate, DateTime endDate, {String unit})- Get date differenceaddDays(DateTime date, int days)- Add days to dateaddMonths(DateTime date, int months)- Add months to dateaddYears(DateTime date, int years)- Add years to dateisLeapYear(int year)- Check if year is leap yeargetDaysInMonth(int year, int month)- Get days in monthisToday(DateTime date)- Check if date is todayisYesterday(DateTime date)- Check if date is yesterdayisTomorrow(DateTime date)- Check if date is tomorrowgetAge(DateTime birthDate)- Calculate age from birth date
ValidationUtils #
checkValidLength(String text, int requiredLength)- Check string lengthcheckValidUrl(String url)- Validate URLcheckValidPanNumber(String panNumber)- Validate Indian PANcheckValidGSTNumber(String gstNumber)- Validate Indian GSTcheckValidEmail(String email)- Validate emailcheckValidPhoneNumber(String phoneNumber, {int minLength, int maxLength})- Validate phonecheckValidIndianMobileNumber(String mobileNumber)- Validate Indian mobilecheckValidAadhaarNumber(String aadhaarNumber)- Validate Indian AadhaarcheckValidCreditCardNumber(String cardNumber)- Validate credit cardcheckValidPassword(String password, {...})- Validate password strengthcheckValidIFSCCode(String ifscCode)- Validate Indian IFSCcheckValidUPIId(String upiId)- Validate UPI IDisAlphabetsOnly(String text)- Check if only alphabetsisNumbersOnly(String text)- Check if only numbersisAlphanumeric(String text)- Check if alphanumericisEmpty(String? text)- Check if empty or nullisNotEmpty(String? text)- Check if not empty and not null
StringUtils #
capitalizeWords(String text)- Capitalize each wordcapitalizeFirst(String text)- Capitalize first lettertoCamelCase(String text)- Convert to camelCasetoSnakeCase(String text)- Convert to snake_casetoKebabCase(String text)- Convert to kebab-caseremoveWhitespace(String text)- Remove all whitespaceremoveSpecialCharacters(String text, {bool keepSpaces})- Remove special charsreverse(String text)- Reverse stringisPalindrome(String text, {bool caseSensitive})- Check if palindromecountOccurrences(String text, String substring)- Count substring occurrencestruncate(String text, int maxLength, {String suffix})- Truncate stringgenerateRandomString(int length, {...})- Generate random stringmaskString(String text, {...})- Mask sensitive informationextractNumbers(String text)- Extract numbers from stringextractEmails(String text)- Extract emails from stringextractUrls(String text)- Extract URLs from stringformatCurrency(double amount, {...})- Format as currencytoSlug(String text)- Convert to URL slug
NumberUtils #
formatWithCommas(int number)- Format with commasformatWithCommasDouble(double number, {int decimalPlaces})- Format double with commasnumberToWords(int number)- Convert number to wordstoOrdinal(int number)- Convert to ordinalroundToDecimalPlaces(double number, int decimalPlaces)- Round to decimal placesisEven(int number)- Check if evenisOdd(int number)- Check if oddisPrime(int number)- Check if primefactorial(int number)- Calculate factorialgcd(int a, int b)- Greatest common divisorlcm(int a, int b)- Least common multiplerandomInt(int min, int max)- Random integerrandomDouble(double min, double max)- Random doublecalculatePercentage(double value, double total)- Calculate percentagecalculateCompoundInterest(double principal, double rate, double time, {...})- Compound interestcalculateSimpleInterest(double principal, double rate, double time)- Simple interestconvertTemperature(double temperature, String fromUnit, String toUnit)- Convert temperatureconvertLength(double value, String fromUnit, String toUnit)- Convert lengthconvertWeight(double value, String fromUnit, String toUnit)- Convert weight
FileUtils #
getFileExtension(String filePath)- Get file extensiongetFileName(String filePath)- Get file namegetFileNameWithoutExtension(String filePath)- Get name without extensiongetDirectoryPath(String filePath)- Get directory pathhasValidExtension(String filePath, List<String> allowedExtensions)- Check valid extensiongetHumanReadableFileSize(int bytes)- Format file sizegenerateUniqueFileName(String originalName, {...})- Generate unique namesanitizeFileName(String fileName)- Sanitize file nameisImageFile(String filePath)- Check if image fileisVideoFile(String filePath)- Check if video fileisAudioFile(String filePath)- Check if audio fileisDocumentFile(String filePath)- Check if document filegetMimeType(String filePath)- Get MIME typeformatFilePathForDisplay(String filePath, {int maxLength})- Format for displayisAbsolutePath(String path)- Check if absolute pathjoinPath(List<String> segments)- Join path segmentsnormalizePath(String path)- Normalize path
NetworkUtils #
isValidIPAddress(String ip)- Validate IP addressisValidMACAddress(String mac)- Validate MAC addressextractDomain(String url)- Extract domain from URLextractProtocol(String url)- Extract protocol from URLextractPort(String url)- Extract port from URLextractPath(String url)- Extract path from URLextractQueryParameters(String url)- Extract query parametersbuildUrlWithQueryParams(String baseUrl, Map<String, String> queryParams)- Build URL with paramsisHttps(String url)- Check if HTTPSisHttp(String url)- Check if HTTPgenerateRandomUserAgent()- Generate random user agentisValidEmailDomain(String domain)- Validate email domaingetDefaultPort(String protocol)- Get default port for protocolisValidPort(int port)- Validate port numberisWellKnownPort(int port)- Check if well-known portisRegisteredPort(int port)- Check if registered portisDynamicPort(int port)- Check if dynamic portparseHttpStatusCode(int statusCode)- Parse HTTP status codeisSuccessStatusCode(int statusCode)- Check if success statusisClientErrorStatusCode(int statusCode)- Check if client errorisServerErrorStatusCode(int statusCode)- Check if server errorgenerateRandomIPAddress()- Generate random IPisValidIPv4Address(String ip)- Validate IPv4isValidIPv6Address(String ip)- Validate IPv6ipToInt(String ip)- Convert IP to integerintToIP(int ipInt)- Convert integer to IP
Contributing #
Contributions are welcome! Please feel free to submit a Pull Request.
License #
This project is licensed under the MIT License - see the LICENSE file for details.
Support #
If you find this package helpful, please consider giving it a ⭐ on GitHub.
Changelog #
See CHANGELOG.md for a list of changes and version history.