0.1.1 โ€ข Published 5 months ago

degachejs v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

๐ŸŒด 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 ๐Ÿ‡น๐Ÿ‡ณ

0.1.1

5 months ago

0.1.0

5 months ago