0.1.1 โข Published 5 months ago
degachejs v0.1.1
๐ด degache.js
Tunisian Developer's Essential Utility Library
Why degache.js? ๐ค
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.
๐ Features
CIN (Carte d'Identitรฉ Nationale) ๐
import { validateCIN } from 'degachejs';
// Simple validation
const isValid = validateCIN('12345678'); // true
Phone Numbers ๐ฑ
- โ Support for all Tunisian carriers (Ooredoo, Orange, Tunisie Telecom)
- ๐ International format conversion
- ๐ Smart formatting with country code
- ๐ข Carrier detection
import { validatePhoneNumber, formatPhoneNumber, getCarrierInfo } from 'degachejs';
// Validate phone number
const isValid = validatePhoneNumber('20123456'); // true
// 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'] }
Tax ID (Matricule Fiscal) ๐ผ
import { validateTaxID } from 'degachejs';
const isValid = validateTaxID('1234567A/P/M/000');
Currency Formatting ๐ฐ
import { formatCurrency } from 'degachejs';
const amount = formatCurrency(1234.56);
console.log(amount); // 1.234,560 ุฏููุงุฑ ุชููุณู
Postal Codes ๐ฎ
import { validatePostalCode } from 'degachejs';
const isValid = validatePostalCode('1000'); // true for Tunis
Bank Account (RIB) Validation ๐ฆ
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' }
Date Formatting ๐
import { formatDate } from 'degachejs';
const formatted = formatDate(new Date());
console.log(formatted); // Formatted date in Tunisian style
Constants ๐
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
npm install degachejs
# or
yarn add degachejs
# or
pnpm add degachejs
๐ ๏ธ Usage
import {
validateCIN,
formatPhoneNumber,
validateTaxID,
formatCurrency,
validateRIB,
getBankFromRIB,
formatDate
} 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());
๐ค Contributing
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.
๐ Security
All validation and formatting functions are designed with security in mind, following best practices for handling sensitive data.
๐ License
degache.js is MIT licensed. See the LICENSE file for details.
๐ Production Ready
- โ Comprehensive input validation
- โก Optimized performance
- ๐งช High test coverage
- ๐ Detailed documentation
- ๐ Type-safe APIs
Built with โค๏ธ for the Tunisian developer community ๐น๐ณ