sussy-util
Version:
Util package made by me
223 lines (222 loc) • 12.3 kB
TypeScript
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>(obj: types.MutableObject<T>, removeNull?: boolean) => T[];
b64ToString: (val: string) => string;
bytesToSize: (bytes: number) => string;
callbackify: <T, E extends Error>(func: (...args: never[]) => types.PromiseOr<T>, callback: (result: T | null, error: E | null) => types.PromiseOr<void>, ...params: never[]) => Promise<void>;
callIfFunction: (func: unknown, ...params: unknown[]) => unknown;
debounce: (fn: types.AnyFunction, wait?: number, immediate?: boolean) => types.AnyFunction;
deepClone: <V>(obj: V) => V;
deepCompare: (obj: types.MutableObject<unknown>, obj2: types.MutableObject<unknown>) => boolean;
fibonacci: (index: number) => number;
getProjectRoot: (dirPath: string) => string;
getObjectKeys: <T extends object>(obj: T) => (keyof T)[];
getTypeString: (arg: never) => string | undefined;
hasProperty: (obj: object, prop: string) => boolean;
hasValue: <T = unknown>(a: T) => boolean;
mapObjectValues: <T extends object, R>(obj: T, mapper: (value: T[keyof T], key: keyof T, object: T) => R) => { [K in keyof T]: R; };
measureTime: (label: string, func: (...args: unknown[]) => unknown, ...params: unknown[]) => void;
merge: (a: object, b: object) => object;
objectToString: (o: unknown) => string;
parseArgs: (args: string[]) => (string | {
flag: string;
value?: string | undefined;
})[];
removeFirstDigit: (n: number) => number;
removeLastDigit: (n: number) => number;
removeProperty: (obj: types.MutableObject<unknown>, prop: string) => types.MutableObject<unknown>;
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>(arr: Array<T | T[]>): T[];
intersection<T>(a: T[], b: T[]): T[];
union<T>(a: T[], b: T[]): T[];
difference<T>(a: T[], b: T[]): T[];
shuffle<X, T extends Array<X>>(array: T | X[]): void;
countOccurrences<T>(array: T[], value: T): number;
clear(array: unknown[]): void;
clone<T>(array: T[]): Array<T>;
deepClone<T>(array: T[]): Array<T>;
removeDuplicates<T>(arr: T[]): T[];
sortByKey<T extends object>(arr: T[], key: keyof T): T[];
remove<T>(arr: T[], item: T): T[];
zip<T, U>(arr1: T[], arr2: U[]): [T, U][];
insert<T>(arr: T[], index: number, ...items: T[]): T[];
uniqueSubArrays(arr: unknown[][]): unknown[][];
quickSelect(arr: number[], k: number): number;
quickSort<T>(arr: T[], compareFn: (a: T, b: T) => number): T[];
chunks<T>(array: T[], chunkSize: number): T[][];
findByPropertyValue<T>(array: T[], property: keyof T, value: unknown): classes.Optional<T>;
findIndexByPropertyValue<T>(array: T[], property: keyof T, value: unknown): number;
findAllIndices<T>(array: T[], condition: (element: T) => boolean): number[];
};
BetterMath: {
round(value: number, digit: number): number;
square(num: number): number;
cube(num: number): number;
distance(path: classes.Point[]): 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;
calculateAverage(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 extends Date>(dt1: T | number | Date, dt2: T | number | Date): number;
equals<T extends Date>(dt1: T | number | Date, dt2: T | number | Date): 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 extends Date>(input: T | number): Date;
isAfter<T extends Date>(date1: T | number | Date, date2: T | number | Date): boolean;
isBefore<T extends Date>(date1: T | number | Date, date2: T | number | Date): boolean;
yearsToMonths(years: number): number;
isWeekend<T extends Date>(dt: T | number | Date): boolean;
getDaysDiff<T extends Date>(dt1: T | number | Date, dt2: T | number | Date): number;
addDays<T extends Date>(dt: T | number | Date, days: number): Date;
formatDate<T extends Date>(dt: T | number | Date, format: string): string;
getCurrentTimestamp(): number;
};
ImmutableClass: typeof classes.ImmutableClass;
ImprovedArray: typeof classes.ImprovedArray;
IsSomething: {
isArray(arg: unknown): arg is Array<unknown>;
isBoolean(arg: unknown): arg is boolean;
isClass(arg: unknown): arg is types.Constructor<object>;
isDate(arg: unknown): arg is Date;
isDefined(arg: unknown): boolean;
isEmpty(arg: unknown): boolean;
isError(arg: unknown): arg is Error;
isEven(num: number): boolean;
isFunction(a: unknown): a is types.AnyFunction;
isInfinite(arg: unknown): boolean;
isNullorUndefined(arg: unknown): arg is null | undefined;
isNumber(arg: unknown): arg is number;
isObject(arg: unknown): arg is object;
isPrime(num: number): boolean;
isPrimitive(arg: unknown): arg is number | null | undefined | string | boolean | symbol;
isRegExp(arg: unknown): arg is RegExp;
isString(arg: unknown): arg is string;
isSymbol(arg: unknown): arg is symbol;
isType(arg: unknown, type: string): boolean;
isInstanceOf(value: unknown, constructor: types.Constructor<object>): 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 "__#private@#resFirst": <R, E extends Error>(resolve: import("./Classes/PromiseUtil").resolver, reject: import("./Classes/PromiseUtil").resolver, result: R, error: E | null) => unknown;
readonly "__#private@#resReplace": <R, E extends Error>(resolve: import("./Classes/PromiseUtil").resolver, reject: import("./Classes/PromiseUtil").resolver, result: R | E) => unknown;
readonly "__#private@#resLast": <R, E extends Error>(resolve: import("./Classes/PromiseUtil").resolver, reject: import("./Classes/PromiseUtil").resolver, error: E | null, result: R) => unknown;
readonly "__#private@#MAPPINGS": import("./Classes/PromiseUtil").MappingTable;
executeSequentially<T>(promises: types.PromiseOr<T>[]): Promise<[Array<T | null>, Error[]]>;
handler<R, E extends Error>(promise: types.PromiseOr<R> | import("./Classes/PromiseUtil").AsyncFunction<R>): Promise<[R | null, E | null]>;
retry<T>(func: () => types.PromiseOr<T>, maxRetries?: number): Promise<[T | null, Error[]]>;
delay(milliseconds: number): Promise<void>;
filter<T>(values: T[], asyncFilterFunc: (value: T) => types.PromiseOr<boolean>): Promise<T[]>;
timeout<T>(promise: types.PromiseOr<T>, milliseconds: number): Promise<T>;
batchPromises<T, R>(values: T[], batchSize: number, asyncFunc: (value: T) => types.PromiseOr<R>): Promise<R[]>;
promisify<T extends unknown[], R>(func: types.AnyFunction, { callBackPosition, errorPosition }?: import("./Classes/PromiseUtil").PromisifyOptions): (...args: T) => Promise<R>;
mapPromises<T, R>(values: T[], asyncMapFunc: (value: T) => types.PromiseOr<R>): Promise<R[]>;
concurrentMap<T, R>(values: T[], asyncMapFunc: (value: T) => types.PromiseOr<R>, concurrency: number): Promise<R[]>;
executeConcurrently<T>(promises: types.PromiseOr<T>[], concurrency: number): Promise<[Array<T | 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>(arr: T[]): T;
randomElementInRange<T>(arr: T[], start: number, end: number): T;
randomProperty<T extends object>(obj: T): T[keyof T];
randomBoolean(): boolean;
randomColor(): string;
randomRgbColor(): number[];
randomUUID(): string;
randomDate(startDate: Date, endDate: Date): Date;
randomEnumValue<T extends object>(enumObject: T): T[keyof T];
randomDateInPast(yearsAgo: number): Date;
};
Set: typeof classes.Set;
Stack: typeof classes.Stack;
StopWatch: typeof classes.StopWatch;
StringUtil: typeof classes.StringUtil;
Tree: typeof classes.Tree;
Tuple: typeof classes.Tuple;
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;
getProtocol(url: string): string;
getPort(url: string): string;
isAbsoluteUrl(url: string): boolean;
encodeUrlComponent(component: string): string;
decodeUrlComponent(encodedComponent: string): string;
};
Vector2d: typeof classes.Vector2d;
Vector3d: typeof classes.Vector3d;
};
export default _default;