A Tunisian utility library for working with CIN, phone numbers, addresses, and more
npm install degachejsTunisian Developer's Essential Utility Library
Tired of rewriting validation code for Tunisian CIN, phone numbers, and tax IDs? degache.js is your go-to utility library for all things Tunisian! Named after the beautiful oasis city of Degache, this library brings the same refreshing relief to your development workflow.
typescript
import { validateCIN } from 'degachejs';// Simple validation
const isValid = validateCIN('12345678'); // true
`$3
- โ
Support for all Tunisian carriers (Ooredoo, Orange, Tunisie Telecom)
- ๐ International format conversion
- ๐ Smart formatting with country code
- ๐ข Carrier detection
- ๐ Strict mode validation`typescript
import { validatePhoneNumber, formatPhoneNumber, getCarrierInfo } from 'degachejs';// Validate phone number
const isValid = validatePhoneNumber('20123456'); // true
// Validate with strict mode (no spaces or special characters allowed)
const isStrictValid = validatePhoneNumber('20 123 456', { strict: true }); // false
// Format phone number
const formatted = formatPhoneNumber('20123456');
console.log(formatted); // +216 20 123 456
// Get carrier information
const carrier = getCarrierInfo('20123456');
console.log(carrier); // { name: 'Ooredoo', prefixes: ['2'] }
`$3
`typescript
import { validateTaxID } from 'degachejs';const isValid = validateTaxID('1234567A/P/M/000');
`$3
`typescript
import { formatCurrency } from 'degachejs';const amount = formatCurrency(1234.56);
console.log(amount); // 1.234,560 ุฏููุงุฑ ุชููุณู
`$3
`typescript
import { validatePostalCode } from 'degachejs';const isValid = validatePostalCode('1000'); // true for Tunis
`$3
`typescript
import { validateCarPlate, getCarPlateInfo } from 'degachejs';// Validate car plate (Arabic format: XXX ุชููุณ XXXX)
const isValid = validateCarPlate('123 ุชููุณ 4567'); // true
// Validate special car plate (RS format)
const isSpecialValid = validateCarPlate('RS 123 ุชููุณ', { type: 'special' }); // true
// Validate with strict mode
const isStrictValid = validateCarPlate('123 ุชููุณ 4567', { strict: true }); // false
// Get car plate information
const plateInfo = getCarPlateInfo('123 ุชููุณ 4567');
console.log(plateInfo);
// {
// type: 'standard',
// components: {
// prefix: '123',
// region: 'ุชููุณ',
// suffix: '4567'
// }
// }
`$3
`typescript
import { validateRIB, getBankFromRIB } from 'degachejs';// Validate RIB
const isValid = validateRIB('12345678901234567890');
// Get bank information
const bank = getBankFromRIB('12345678901234567890');
console.log(bank); // { name: 'Bank Name', code: '12' }
`$3
`typescript
import { formatDate } from 'degachejs';const formatted = formatDate(new Date());
console.log(formatted); // Formatted date in Tunisian style
`$3
`typescript
import { BANKS, CARRIERS, GOVERNORATES } from 'degachejs';// Access list of Tunisian banks
console.log(BANKS);
// Access list of mobile carriers
console.log(CARRIERS);
// Access list of governorates
console.log(GOVERNORATES);
`๐ฆ Installation
`bash
npm install degachejs
or
yarn add degachejs
or
pnpm add degachejs
`๐ ๏ธ Usage
`typescript
import {
validateCIN,
formatPhoneNumber,
validateTaxID,
formatCurrency,
validateRIB,
getBankFromRIB,
formatDate,
validateCarPlate,
getCarPlateInfo
} from 'degachejs';// Validate CIN
const isCINValid = validateCIN('12345678');
// Format phone number
const phoneNumber = formatPhoneNumber('20123456');
// Validate Tax ID
const isTaxIDValid = validateTaxID('1234567A/P/M/000');
// Format currency
const price = formatCurrency(1234.56, { symbol: true });
// Validate RIB
const isRIBValid = validateRIB('12345678901234567890');
// Get bank information
const bankInfo = getBankFromRIB('12345678901234567890');
// Format date
const formattedDate = formatDate(new Date());
// Validate car plate
const isCarPlateValid = validateCarPlate('123 ุชููุณ 4567');
// Get car plate information
const carPlateInfo = getCarPlateInfo('123 ุชููุณ 4567');
``We welcome contributions from the Tunisian developer community! Whether it's:
- ๐ Bug fixes
- โจ New features
- ๐ Documentation improvements
- ๐งช Test cases
- ๐ก Feature suggestions
Check out our Contributing Guide to get started.
All validation and formatting functions are designed with security in mind, following best practices for handling sensitive data.
degache.js is MIT licensed. See the LICENSE file for details.
- โ
Comprehensive input validation
- โก Optimized performance
- ๐งช High test coverage
- ๐ Detailed documentation
- ๐ Type-safe APIs
---
Built with โค๏ธ for the Tunisian developer community ๐น๐ณ