1.0.24 • Published 2 months ago

@kkiapay-org/utils v1.0.24

Weekly downloads
-
License
ISC
Repository
-
Last release
2 months ago

KkiaPay Utils

Exposed countries, declarations and functions.

Features

  • Countries
  • Declarations
  • Format
  • Functions
  • telInput
  • Validation

Installation

npm i @kkiapay-org/utils

Countries : TCountry[]

Five supported countries : BJ, CI, TG, SN and NE

enum Provider {
  MOOV = "MOOV",
  MTN = "MTN",
  CELTIS = "CELTIS",
  ORANGE = "ORANGE",
  TMONEY = "TMONEY",
  AIRTEL = "AIRTEL",
  FREEMONEY = "FREEMONEY",
  WAVE = "WAVE",
}

type TCountry = {
  code: string;
  indicative: string;
  flag: string;
  providers: { [key in Provider]: string[] | undefined };
};

Declarations

// Example

enum TCountryCode {
  BJ = "BJ",
  CI = "CI",
  SN = "SN",
  TG = "TG",
  NE = "NE",
}

enum PaymentMethod {
  MOBILE_MONEY = "MOBILE_MONEY",
  BANK_ACCOUNT = "BANK_ACCOUNT",
  WALLET = "WALLET",
  CARD = "CARD",
}

enum TransactionType {
  FUND = "FUND",
  SPLIT = "SPLIT",
  DEBIT = "DEBIT",
  CREDIT = "CREDIT",
  TRANSFERT = "TRANSFERT",
}

enum TransactionStatus {
  INIT = "INIT",
  PENDING = "PENDING",
  SUCCESS = "SUCCESS",
  FAILED = "FAILED",
  REVERTED = "REVERTED",
}

Format

type Locale = "fr" | "en";
type InputType = 'fullname'| 'cardId' | 'expDate'| 'number'

interface Result {
    provider: string;
    countryCode: string;
    countryCallingCode: string;
    phone: string;
    phoneWithIndicative: string;
    national: string;
    international: string;
}

formatAmount(amount: number | string, locale?: Locale): string

formatNumber(nbr: number | string, locale?: Locale): string

formatDate(date_: string | Date, format?: Format, locale?: Locale): string

formatBasePhone(entry: string, countryCode: TCountryCode): string

formatPhone(entry: string): Result

formatPhoneInput(input: string, countryCode?: TCountryCode): string

formatInput(input: any, type?: InputType, event?: any): string

Functions

interface Result {
    newdate: Date;
    day: string | number;
    month: string | number;
    year: number;
    hours: number;
    minutes: string | number;
}
type = "session"| "local"

getSize(key: string, value: number | string | Date): string | number | Date

getDate(date: string | Date): Result

acronym(str: string): string | undefined

capitalize(str: string): string

calculPosition(dropdownDiv: HTMLElement, position: Ref<"top" | "bottom">): void

getStorageItem(item: string, defaultValue?: string, type?: string): string

setStorageItem(item: string, value: string, type?: string): void

removeStorageItem(items: string[], type?: string): void

clearStorage(): void

telInput

interface PhoneByCountryRes {
    provider: string;
    country: TCountry
}
interface PhoneRes {
    provider: string;
    country: TCountry| undefined
}

getPhoneByCountry(phone: string, country: TCountry): PhoneByCountryRes | undefined

getPhone(phone: string): PhoneRes

checkProvider(phoneNumber: string, provider: string, country?: TCountry): true | TCountry | undefined

getOperator(phoneNumber: string, country: TCountryCode): string

getCountriesByCode: (countriesCode: string[]) => TCountry[]

getCountryByCode: (countryCode: string) => TCountry | undefined

getCountryByIndicative: (indicative: string) => TCountry | undefined

getPhoneInfos(phoneNumber: string, actualCountry: TCountry, defaultCountryCode?: string): PhoneRes | undefined

Validation

type PatternKey = "min" | "max" | "step" | "minlength" | "maxlength" | "number" | "uppercase" | "specialchar"

type fieldKey = "cvc" | "code" | "expDate" | "cardId" | "pin" | "otp" | "name" | "email"

phoneIsValid: (value: string, countrycode?: TCountryCode) => boolean

patternRules: (value: string, req: number) => Record<string,boolean>

fieldRules: (value: string) => Record<string,boolean>

1.0.24

2 months ago

1.0.23

4 months ago

1.0.22

4 months ago

1.0.21

5 months ago

1.0.20

6 months ago

1.0.18

6 months ago

1.0.17

6 months ago

1.0.16

6 months ago

1.0.15

6 months ago

1.0.14

7 months ago

1.0.13

7 months ago

1.0.12

8 months ago

1.0.11

8 months ago

1.0.10

9 months ago

1.0.9

9 months ago

1.0.8

9 months ago

1.0.7

9 months ago

1.0.6

9 months ago

1.0.5

9 months ago

1.0.4

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago