mjstl
Version:
JS USEABLE DATEUTIL HELPER LIB
102 lines (101 loc) • 3.37 kB
TypeScript
export interface INumeralOptions {
fraction?: number;
thousandSeperator?: boolean;
}
export interface NumeralValidity {
gte?: number;
gt?: number;
lte?: number;
lt?: number;
}
export interface NumeralUtil {
currency: (value: number, code?: string | null, thousandSeperator?: boolean | null, direction?: "ltr" | "rtl") => string;
format: (value: number, code?: string | null, thousandSeperator?: boolean | null, fraction?: number) => string;
parseRaw: (value: string, code?: string | null, fraction?: number) => string;
toNumber: (value: string | number, fraction?: number) => number;
toFloat: (value: string | number, fraction?: number) => number;
toInt: (value: string | number) => number;
}
export interface ICurrencySlotProps {
direction?: "ltr" | "ltr";
value: number;
code?: string;
thousandSeperator?: boolean | null;
fraction?: number;
}
export interface NumeralSlotProps {
value: number;
code?: string;
thousandSeperator?: boolean | null;
fraction?: number;
}
export declare enum PhoneType {
ANY = "ANY",
MOBILE = "MOBILE",
LAND = "LAND"
}
export interface PhoneRaw {
aa2: string;
code: number;
nn: string;
example?: string;
}
export interface PhoneUtil {
parseRaw: (phone: string, phoneType?: PhoneType) => PhoneRaw | null;
parseRawByCountryCode: (code: string, phone: string, phoneType?: PhoneType) => PhoneRaw | null;
pretty: (phone: string, phoneType?: PhoneType) => string;
}
export type MGLatLng = {
latitude: number;
longitude: number;
};
export interface IGeoUtil {
encode: (path: MGLatLng[]) => string;
decode: (encoded: string) => MGLatLng[];
mcoord: (lat: number, lng: number) => MGLatLng;
Distance: (lat1: number, lon1: number, lat2: number, lon2: number, abs?: boolean) => {
V1: () => number;
V2: () => number;
V3: () => number;
};
findCenter: (points: MGLatLng[]) => MGLatLng;
}
export interface IIdUtil {
uid: () => number;
uid2: () => string;
uuid: () => string;
ulid: () => string;
}
export interface IDeviceUtil {
isMobileOrTablet: () => boolean;
}
export interface ISafeSaniItem {
safe: () => string;
check: () => boolean;
log: () => void;
}
export interface ISafeSani {
url: (url: string) => ISafeSaniItem;
input: (value: string | any) => ISafeSaniItem;
}
export type SfAccFn<T, R = any> = (item: T, index: number) => R;
export type SfAccType<T, R = any> = string | string[] | SfAccFn<T, R> | null;
export type SfCompareFnn<T> = (a: T, b: T) => number;
export type SfSortDirectionType = "asc" | "desc";
export type SfSortCompareType = "String" | "Number" | "Date";
export declare enum SfSortCompareTypeMap {
"String" = "String",
"Number" = "Number",
"Date" = "Date"
}
export type SfCallbackFn<T, R> = (item: T, index: number) => R;
export interface MArray<T> {
sfSort<R>(type: SfSortCompareType, acc: SfAccType<T, R> | null, direction?: SfSortDirectionType): this;
sfMap<R>(acc: SfCallbackFn<T, R>): Array<R>;
sfEach(acc?: SfAccType<T, void>): this;
sfFilter(acc?: SfAccType<T, any>): Array<T>;
sfFind(acc?: SfAccType<T, any>): T | null;
}
export interface IDash {
lget<E, T>(obj: E, path: string | string[], defaultValue?: T extends unknown ? any : T): T extends unknown ? any : T;
}