sussy-util
Version:
Util package made by me
221 lines (220 loc) • 12 kB
TypeScript
/// <reference types="node" />
export * from './Classes';
export * from './Error';
export * from './Functions';
export * from './Types';
import * as classes from './Classes';
import * as errorClasses from './Error';
import * as functions from './Functions';
import * as types from './Types';
export { classes, functions, types };
declare const _default: {
addProperty: <T>(obj: types.MutableObject<T>, prop: string, value: T) => types.MutableObject<T>;
asyncTimeout: (ms: number) => Promise<number | NodeJS.Timeout>;
attributesToArray: <T_1>(obj: types.MutableObject<T_1>, removeNull?: boolean | undefined) => T_1[];
b64ToString: (val: string) => string;
bytesToSize: (bytes: number) => string;
callbackify: <T_2, E extends Error>(func: (...args: any[]) => types.PromiseOr<T_2>, callback: (result: T_2 | null, error: E | null) => types.PromiseOr<void>, ...params: any[]) => Promise<void>;
callIfFunction: (func: any, ...params: any[]) => any;
debounce: (fn: Function, wait?: number | undefined, immediate?: boolean) => (...args: any) => void;
deepClone: (obj: types.MutableObject<any> | types.MutableObject<any>[]) => types.MutableObject<any> | types.MutableObject<any>[];
deepCompare: (obj: types.MutableObject<any>, obj2: types.MutableObject<any>) => boolean;
fibonacci: (index: number) => number;
getProjectRoot: (dirPath: string) => string;
getObjectKeys: <T_3 extends Object>(obj: T_3) => (keyof T_3)[];
getTypeString: (arg: any) => string | undefined;
hasProperty: (obj: Object, prop: string) => boolean;
hasValue: (a: any) => boolean;
mapObjectValues: <T_4 extends object, R>(obj: T_4, mapper: (value: T_4[keyof T_4], key: keyof T_4, object: T_4) => R) => { [K in keyof T_4]: R; };
measureTime: (label: string, func: (...args: any) => any, ...params: any[]) => void;
merge: (a: object, b: object) => object;
objectToString: (o: any) => string;
parseArgs: (args: string[]) => (string | {
flag: string;
value?: string | undefined;
})[];
removeFirstDigit: (n: number) => number;
removeLastDigit: (n: number) => number;
removeProperty: (obj: types.MutableObject<any>, prop: string) => types.MutableObject<any>;
removeXDigits: (n: number, pos: number) => number;
strictJSONParse: (str: string) => Object;
stringToB64: (value: String) => String;
syncTimeout: (milliseconds: number) => void;
toOrdinal: (n: number) => string;
AbstractClassInstanceCallError: typeof errorClasses.AbstractClassInstanceCallError;
IndexOutOfBoundsError: typeof errorClasses.IndexOutOfBoundsError;
AbstractClass: typeof classes.AbstractClass;
ArrayUtils: {
flat<T_5>(arr: (T_5 | T_5[])[]): T_5[];
intersection<T_6>(a: T_6[], b: T_6[]): T_6[];
union<T_7>(a: T_7[], b: T_7[]): T_7[];
difference<T_8>(a: T_8[], b: T_8[]): T_8[];
shuffle<X, T_9 extends X[]>(array: X[] | T_9): void;
countOccurrences<T_10>(array: T_10[], value: T_10): number;
clear(array: any[]): void;
clone<T_11>(array: T_11[]): T_11[];
deepClone<T_12>(array: T_12[]): T_12[];
removeDuplicates<T_13>(arr: T_13[]): T_13[];
sortByKey<T_14 extends Object>(arr: T_14[], key: keyof T_14): T_14[];
remove<T_15>(arr: T_15[], item: T_15): T_15[];
zip<T_16, U>(arr1: T_16[], arr2: U[]): [T_16, U][];
insert<T_17>(arr: T_17[], index: number, ...items: T_17[]): T_17[];
uniqueSubArrays(arr: any[][]): any[][];
quickSelect(arr: number[], k: number): number;
quickSort<T_18>(arr: T_18[], compareFn: (a: T_18, b: T_18) => number): T_18[];
chunks<T_19>(array: T_19[], chunkSize: number): T_19[][];
findByPropertyValue<T_20>(array: T_20[], property: keyof T_20, value: any): classes.Optional<T_20>;
findIndexByPropertyValue<T_21>(array: T_21[], property: keyof T_21, value: any): number;
findAllIndices<T_22>(array: T_22[], condition: (element: T_22) => boolean): number[];
};
BetterMath: {
round(value: number, digit: number): number;
square(num: number): number;
cube(num: number): number;
distance: (path: classes.Point[], index?: number) => number;
greatestCommonDivisor(a: number, b: number): number;
gcd(a: number, b: number): number;
lowestCommonDenominator(a: number, b: number): number;
lcd(a: number, b: number): number;
average(numbers: number[]): number;
avg(numbers: number[]): number;
factorial(num: number): number;
factorialIterative(num: number): number;
median(values: number[]): number;
nthRoot(number: number, n: number): number;
logarithm(number: number, base: number): number;
permutations(n: number, r: number): number;
combinations(n: number, r: number): number;
degreesToRadians(degrees: number): number;
radiansToDegrees(radians: number): number;
factorialWithMemoization(num: number, memo?: Map<number, number>): number;
countDecimalDigits(number: number): number;
};
BuilderBuilder: typeof classes.BuilderBuilder;
Collection: typeof classes.Collection;
DataConverter: typeof classes.DataConverter;
DateUtil: {
getCurrentDate(): Date;
today(): Date;
tomorrow(): Date;
yesterday(): Date;
compareDates<T_23 extends Date>(dt1: number | Date | T_23, dt2: number | Date | T_23): number;
equals<T_24 extends Date>(dt1: number | Date | T_24, dt2: number | Date | T_24): boolean;
getMonthAbbr(number: number): string;
getMonthFullName(number: number): string;
getDayAbbr(number: number): string;
getDayFullName(number: number): string;
isLeapYear(year: number): boolean;
weekFirstDay(): Date;
weekLastDay(): Date;
leapYearsInRange(startYear: number, endYear: number): number[];
getMonthFirstDay(): Date;
getMonthLastDay(): Date;
toDate<T_25 extends Date>(input: Number | T_25): Date;
isAfter<T_26 extends Date>(date1: number | Date | T_26, date2: number | Date | T_26): boolean;
isBefore<T_27 extends Date>(date1: number | Date | T_27, date2: number | Date | T_27): boolean;
yearsToMonths(years: number): number;
isWeekend<T_28 extends Date>(dt: number | Date | T_28): boolean;
getDaysDiff<T_29 extends Date>(dt1: number | Date | T_29, dt2: number | Date | T_29): number;
addDays<T_30 extends Date>(dt: number | Date | T_30, days: number): Date;
formatDate<T_31 extends Date>(dt: number | Date | T_31, format: string): string;
getCurrentTimestamp(): number;
};
ImmutableClass: typeof classes.ImmutableClass;
ImprovedArray: typeof classes.ImprovedArray;
IsSomething: {
isArray(arg: any): boolean;
isBoolean(arg: any): boolean;
isClass(arg: any): boolean;
isDate(arg: any): boolean;
isDefined(arg: any): boolean;
isEmpty(arg: any): boolean;
isError(arg: any): boolean;
isEven(num: number): boolean | null;
isFunction(a: any): boolean;
isInfinite(arg: any): boolean;
isNullorUndefined(arg: any): boolean;
isNumber(arg: any): boolean;
isObject(arg: any): boolean;
isPrime(num: number): boolean | null;
isPrimitive(arg: any): boolean;
isRegExp(arg: any): boolean;
isString(args: any): boolean;
isSymbol(arg: any): boolean;
isType(arg: any, type: String): boolean;
isInstanceOf(value: any, constructor: Function): boolean | null;
isDateValid(date: Date): boolean;
};
LRUCache: typeof classes.LRUCache;
MatrixOperations: typeof classes.MatrixOperations;
ObjectPool: typeof classes.ObjectPool;
Optional: typeof classes.Optional;
Point: typeof classes.Point;
Point3d: typeof classes.Point3d;
PrimeNumbers: typeof classes.PrimeNumbers;
PromiseUtil: {
readonly "__#1@#resFirst": <R_1, E_1>(resolve: Function, reject: Function, result: R_1, error: E_1 | null) => any;
readonly "__#1@#resReplace": <R_2, E_2>(resolve: Function, reject: Function, result: R_2 | E_2) => any;
readonly "__#1@#resLast": <R_3, E_3>(resolve: Function, reject: Function, error: E_3 | null, result: R_3) => any;
readonly "__#1@#MAPPINGS": types.MutableObject<{
args: (args: any[], callback: Function) => any[];
function1: Function;
}>;
executeSequentially<T_32>(promises: types.PromiseOr<T_32>[]): Promise<[(T_32 | null)[], Error[]]>;
handler<R_4, E_4 extends Error>(promise: types.PromiseOr<R_4> | (() => types.PromiseOr<R_4>)): Promise<[R_4 | null, E_4 | null]>;
retry<T_33>(func: () => types.PromiseOr<T_33>, maxRetries?: number): Promise<[T_33 | null, Error[]]>;
delay(milliseconds: number): Promise<void>;
filter<T_34>(values: T_34[], asyncFilterFunc: (value: T_34) => types.PromiseOr<boolean>): Promise<T_34[]>;
timeout<T_35>(promise: types.PromiseOr<T_35>, milliseconds: number): Promise<T_35>;
batchPromises<T_36, R_5>(values: T_36[], batchSize: number, asyncFunc: (value: T_36) => types.PromiseOr<R_5>): Promise<R_5[]>;
promisify<T_37, R_6>(func: Function, { callBackPosition, errorPosition }?: {
callBackPosition: "front" | "back";
errorPosition: "replace" | "first" | "last";
}): (...args: T_37[]) => Promise<R_6>;
mapPromises<T_38, R_7>(values: T_38[], asyncMapFunc: (value: T_38) => types.PromiseOr<R_7>): Promise<R_7[]>;
concurrentMap<T_39, R_8>(values: T_39[], asyncMapFunc: (value: T_39) => types.PromiseOr<R_8>, concurrency: number): Promise<R_8[]>;
executeConcurrently<T_40>(promises: types.PromiseOr<T_40>[], concurrency: number): Promise<[(T_40 | null)[], Error[]]>;
};
Queue: typeof classes.Queue;
Random: {
readonly defaultCharset: string;
randomInt(lower?: number, upper?: number): number;
randomDouble(lower: number, upper: number): number;
randomChar(charset?: string): string;
randomString(length?: number, charset?: string): string;
randomElement<T_41>(arr: T_41[]): T_41;
randomElementInRange<T_42>(arr: T_42[], start: number, end: number): T_42;
randomProperty<T_43 extends Object>(obj: T_43): T_43[keyof T_43];
randomBoolean(): boolean;
randomColor(): string;
randomRgbColor(): number[];
randomUUID(): string;
randomDate(startDate: Date, endDate: Date): Date;
};
Set: typeof classes.Set;
Stack: typeof classes.Stack;
StopWatch: typeof classes.StopWatch;
StringUtil: typeof classes.StringUtil;
UnitConverter: typeof classes.UnitConverter;
UrlUtil: {
isUrl(url: string): boolean;
parseUrl(url: string): URL;
getDomainName(url: string): string;
getPath(url: string): string;
addQueryParams(url: string, params: types.MutableObject<string>): string;
removeQueryParam(url: string, param: string): string;
editQueryParams(url: string, params: types.MutableObject<string>): string;
getQueryParams(url: string): types.MutableObject<string>;
getQueryParamValue(url: string, param: string): string | null;
updatePath(url: string, newPath: string): string;
hasQueryParams(url: string): boolean;
hasQueryParam(url: string, param: string): boolean;
updateQueryParams(url: string, params: types.MutableObject<string>): string;
replaceQueryParams(url: string, replacements: types.MutableObject<string>): string;
removeQueryParams(url: string, paramsToRemove: string[]): string;
mergeQueryParams(url1: string, url2: string): string;
};
Vector2d: typeof classes.Vector2d;
Vector3d: typeof classes.Vector3d;
};
export default _default;