Gathering detailed insights and metrics for indian-pincode-validator
Gathering detailed insights and metrics for indian-pincode-validator
Gathering detailed insights and metrics for indian-pincode-validator
Gathering detailed insights and metrics for indian-pincode-validator
npm install indian-pincode-validator
Typescript
Module System
Min. Node Version
Node Version
NPM Version
TypeScript (93.68%)
JavaScript (6.32%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
1 Stars
4 Commits
1 Branches
1 Contributors
Updated on May 25, 2025
Latest Version
2.0.0
Package Id
indian-pincode-validator@2.0.0
Unpacked Size
84.38 kB
Size
19.50 kB
File Count
8
NPM Version
10.9.2
Node Version
22.16.0
Published on
May 25, 2025
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
7
The most comprehensive Indian pincode validation library with 19,000+ pincodes, location intelligence, COD checking, courier services, and delivery estimation. Built specifically for Indian e-commerce, logistics, and fintech applications.
Solves Real Indian Developer Problems:
1npm install indian-pincode-validator
1const { validate, getDetails, checkCOD, getCouriers } = require('indian-pincode-validator'); 2 3// Basic validation 4console.log(validate('110001')); 5// { valid: true } 6 7// Complete location details 8const location = getDetails('110001'); 9console.log(location); 10/* { 11 valid: true, 12 pincode: '110001', 13 area: 'Connaught Place', 14 city: 'New Delhi', 15 district: 'Central Delhi', 16 state: 'Delhi', 17 region: 'North', 18 zone: 'Northern', 19 tier: 1, 20 isMetroCity: true, 21 coordinates: { latitude: 28.6315, longitude: 77.2167 } 22} */ 23 24// COD availability with business logic 25const cod = checkCOD('796007'); 26console.log(cod); 27/* { 28 pincode: '796007', 29 codAvailable: false, 30 reason: 'COD service limited in Northeast region', 31 maxCodAmount: 0, 32 codCharges: null 33} */ 34 35// Courier services with detailed info 36const couriers = getCouriers('400001'); 37console.log(couriers); 38/* { 39 services: ['BlueDart', 'DTDC', 'Delhivery', 'FedEx'], 40 deliveryDays: 1, 41 expressDelivery: true, 42 serviceLevel: 'Premium' 43} */
1validate('110001') // { valid: true } 2validate('00001') // { valid: false, error: "Pincode cannot start with 0" } 3validate('12345') // { valid: false, error: "Pincode must be exactly 6 digits" }
1const details = getDetails('560001'); 2console.log(details); 3/* { 4 valid: true, 5 pincode: '560001', 6 area: 'Bangalore GPO', 7 city: 'Bangalore', 8 district: 'Bangalore Urban', 9 state: 'Karnataka', 10 region: 'South', 11 zone: 'Southern', 12 tier: 1, 13 isMetroCity: true, 14 coordinates: { latitude: 12.9716, longitude: 77.5946 } 15} */
1const codCheck = checkCOD('400001'); 2console.log(codCheck); 3/* { 4 pincode: '400001', 5 codAvailable: true, 6 maxCodAmount: 50000, // Tier 1 city limit 7 codCharges: 25, // Flat COD charges 8 reason: null 9} */ 10 11// Northeast region example 12const codNE = checkCOD('793001'); 13/* { 14 pincode: '793001', 15 codAvailable: false, 16 reason: 'COD service limited in Northeast region due to connectivity issues', 17 maxCodAmount: 0, 18 codCharges: null 19} */
1const couriers = getCouriers('110001'); 2console.log(couriers); 3/* { 4 pincode: '110001', 5 services: ['BlueDart', 'DTDC', 'Delhivery', 'Ecom', 'FedEx', 'DHL'], 6 totalServices: 6, 7 deliveryDays: 1, 8 expressDelivery: true, 9 internationalCouriers: ['FedEx', 'DHL', 'BlueDart'], 10 domesticCouriers: ['DTDC', 'Delhivery', 'Ecom'], 11 tier: 1, 12 serviceLevel: 'Premium' 13} */
1// Check general delivery 2const delivery = checkDelivery('400001'); 3console.log(delivery); 4/* { 5 available: true, 6 services: ['BlueDart', 'DTDC', 'Delhivery', 'FedEx'], 7 deliveryDays: 1, 8 expressAvailable: true, 9 recommendedCourier: 'FedEx' 10} */ 11 12// Check specific courier 13const fedexDelivery = checkDelivery('400001', 'FedEx'); 14/* { 15 available: true, 16 courier: 'FedEx', 17 deliveryDays: 1, 18 estimatedCost: 200, 19 reason: null, 20 alternatives: [] 21} */
1const mumbaiPincodes = searchByCity('Mumbai'); 2console.log(mumbaiPincodes.slice(0, 3)); 3/* [ 4 { pincode: '400001', area: 'Fort', city: 'Mumbai', state: 'Maharashtra', ... }, 5 { pincode: '400002', area: 'Kalbadevi', city: 'Mumbai', state: 'Maharashtra', ... }, 6 { pincode: '400003', area: 'Masjid Bunder', city: 'Mumbai', state: 'Maharashtra', ... } 7] */
1const karnatakaLocations = searchByState('Karnataka'); 2console.log(`Found ${karnatakaLocations.length} locations in Karnataka`); 3// Found 45+ locations in Karnataka
1const metros = getMetroCities(); 2console.log(metros.map(m => m.city)); 3// ['Mumbai', 'Delhi', 'Bangalore', 'Hyderabad', 'Chennai', 'Kolkata', ...]
1const tier1Cities = getTierCities(1); 2const tier2Cities = getTierCities(2); 3const tier3Cities = getTierCities(3); 4 5console.log('Tier 1:', tier1Cities.map(c => c.city)); 6// ['Mumbai', 'Delhi', 'Bangalore', 'Hyderabad', 'Chennai', 'Kolkata', 'Pune', 'Ahmedabad']
1const distance = getDistance('110001', '400001'); // Delhi to Mumbai 2console.log(distance); 3/* { 4 from: { city: 'New Delhi', state: 'Delhi', ... }, 5 to: { city: 'Mumbai', state: 'Maharashtra', ... }, 6 distanceKm: 1155, 7 estimatedDeliveryDays: 3, 8 estimatedShippingCost: 150, 9 sameCity: false, 10 sameState: false, 11 sameRegion: false, 12 expressDeliveryAvailable: false, 13 recommendedCourier: 'BlueDart' 14} */
1const nearby = findNearbyPincodes('110001', 25); // 25km radius 2console.log(nearby.slice(0, 5)); 3/* [ 4 { pincode: '110016', city: 'New Delhi', distanceKm: 8.5, ... }, 5 { pincode: '110085', city: 'New Delhi', distanceKm: 12.3, ... }, 6 { pincode: '201001', city: 'Ghaziabad', distanceKm: 18.7, ... } 7] */
1const pincodes = ['110001', '400001', '560001', '600001']; 2const results = validateMultiple(pincodes); 3 4results.forEach(result => { 5 console.log(`${result.pincode}: ${result.valid ? result.city : result.error}`); 6}); 7// 110001: New Delhi 8// 400001: Mumbai 9// 560001: Bangalore 10// 600001: Chennai
1const { IndianPincodeValidator } = require('indian-pincode-validator'); 2 3const validator = new IndianPincodeValidator(); 4 5// All methods available on instance 6const isValid = validator.isValidFormat('110001'); 7const location = validator.getLocationDetails('110001'); 8const codInfo = validator.isCODAvailable('110001'); 9const couriers = validator.getCourierServices('110001'); 10const delivery = validator.isDeliveryAvailable('110001', 'BlueDart'); 11const bulk = validator.validateBulk(['110001', '400001']); 12const distance = validator.getDistanceEstimate('110001', '400001'); 13const nearby = validator.findNearbyPincodes('110001', 50);
1// E-commerce checkout validation 2function validateCheckout(pincode, paymentMethod, items) { 3 const location = getDetails(pincode); 4 if (!location.valid) { 5 return { error: 'Invalid delivery pincode' }; 6 } 7 8 const codCheck = checkCOD(pincode); 9 if (paymentMethod === 'COD' && !codCheck.codAvailable) { 10 return { 11 error: 'COD not available', 12 reason: codCheck.reason, 13 suggestOnline: true 14 }; 15 } 16 17 const couriers = getCouriers(pincode); 18 const deliveryEstimate = Math.max(couriers.deliveryDays, 1); 19 20 return { 21 success: true, 22 location: location, 23 deliveryDays: deliveryEstimate, 24 codAvailable: codCheck.codAvailable, 25 expressDelivery: couriers.expressDelivery, 26 estimatedDelivery: new Date(Date.now() + deliveryEstimate * 24 * 60 * 60 * 1000) 27 }; 28} 29 30// Usage 31const checkout = validateCheckout('110001', 'COD', []); 32console.log(checkout); 33/* { 34 success: true, 35 location: { city: 'New Delhi', state: 'Delhi', tier: 1, ... }, 36 deliveryDays: 1, 37 codAvailable: true, 38 expressDelivery: true, 39 estimatedDelivery: 2024-01-25T10:30:00.000Z 40} */
1// Multi-city delivery planning 2function planDeliveryRoute(hubPincode, deliveryPincodes) { 3 return deliveryPincodes.map(pincode => { 4 const distance = getDistance(hubPincode, pincode); 5 const couriers = getCouriers(pincode); 6 7 return { 8 pincode, 9 location: distance.to, 10 distanceKm: distance.distanceKm, 11 deliveryDays: distance.estimatedDeliveryDays, 12 shippingCost: distance.estimatedShippingCost, 13 recommendedCourier: distance.recommendedCourier, 14 priority: distance.to.tier === 1 ? 'High' : distance.to.tier === 2 ? 'Medium' : 'Low' 15 }; 16 }).sort((a, b) => a.deliveryDays - b.deliveryDays); 17} 18 19// Usage 20const routes = planDeliveryRoute('110001', ['400001', '560001', '700001']); 21console.log(routes);
1// Find nearest serviceable stores 2function findNearestStores(customerPincode, storePincodes) { 3 const customer = getDetails(customerPincode); 4 if (!customer.valid) return []; 5 6 return storePincodes.map(storePincode => { 7 const store = getDetails(storePincode); 8 const distance = getDistance(customerPincode, storePincode); 9 10 return { 11 storeLocation: store, 12 distanceKm: distance.distanceKm, 13 deliveryDays: distance.estimatedDeliveryDays, 14 sameCity: distance.sameCity, 15 sameState: distance.sameState 16 }; 17 }).sort((a, b) => a.distanceKm - b.distanceKm); 18}
1const { IndianPincodeValidator } = require('indian-pincode-validator'); 2 3class CustomValidator extends IndianPincodeValidator { 4 constructor(customRules = {}) { 5 super(); 6 this.customRules = customRules; 7 } 8 9 // Override COD logic for specific business needs 10 isCODAvailable(pincode) { 11 const result = super.isCODAvailable(pincode); 12 13 // Custom business rule: No COD for orders > ₹25,000 in Tier 3 cities 14 if (this.customRules.maxCodAmount) { 15 const location = this.getLocationDetails(pincode); 16 if (location.tier === 3 && this.customRules.maxCodAmount > 25000) { 17 return { 18 ...result, 19 codAvailable: false, 20 reason: 'COD limit exceeded for Tier 3 city' 21 }; 22 } 23 } 24 25 return result; 26 } 27} 28 29// Usage with custom rules 30const customValidator = new CustomValidator({ 31 maxCodAmount: 30000, 32 preferredCouriers: ['BlueDart', 'Delhivery'] 33});
1// Robust error handling 2try { 3 const result = getDetails('invalid-pincode'); 4 if (!result.valid) { 5 console.log('Validation failed:', result.error); 6 // Handle invalid pincode gracefully 7 } 8} catch (error) { 9 console.error('Unexpected error:', error); 10 // Fallback logic 11}
1// Jest test examples 2const { validate, getDetails, checkCOD } = require('indian-pincode-validator'); 3 4describe('Indian Pincode Validator', () => { 5 test('validates correct pincode format', () => { 6 expect(validate('110001').valid).toBe(true); 7 expect(validate('000001').valid).toBe(false); 8 expect(validate('12345').valid).toBe(false); 9 }); 10 11 test('returns location details for valid pincode', () => { 12 const result = getDetails('110001'); 13 expect(result.valid).toBe(true); 14 expect(result.city).toBe('New Delhi'); 15 expect(result.state).toBe('Delhi'); 16 }); 17 18 test('handles COD availability correctly', () => { 19 const metro = checkCOD('110001'); 20 expect(metro.codAvailable).toBe(true); 21 22 const northeast = checkCOD('793001'); 23 expect(northeast.codAvailable).toBe(false); 24 }); 25});
validate(pincode: string | number): ValidationResult
Basic pincode format validation.
getDetails(pincode: string | number): LocationData | ValidationResult
Complete location information for a pincode.
checkCOD(pincode: string | number): CODResult
Cash on Delivery availability and limits.
getCouriers(pincode: string | number): CourierResult
Available courier services and delivery information.
checkDelivery(pincode: string | number, courier?: string): DeliveryResult
Delivery availability for specific or all couriers.
findNearbyPincodes(pincode: string | number, radius?: number): LocationData[]
Find pincodes within specified radius (default: 50km).
searchByCity(cityName: string): LocationData[]
Search all pincodes for a city.
searchByState(stateName: string): LocationData[]
Search all pincodes for a state.
getMetroCities(): LocationData[]
Get all metro city pincodes.
getTierCities(tier: number): LocationData[]
Get cities by tier classification (1, 2, or 3).
validateMultiple(pincodes: (string | number)[]): LocationData[]
Bulk validation of multiple pincodes.
getDistance(fromPincode: string | number, toPincode: string | number): DistanceResult
Calculate distance and delivery estimates between pincodes.
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
MIT License - see LICENSE.md for details.
Made with ❤️ for Indian Developers by Indian Developers 🇮🇳
No vulnerabilities found.
No security vulnerabilities found.