core-fed-util
v1.4.4
Published
This is A collection of commonly used frontend utility functions
Maintainers
Readme
core-fed-util
This is A collection of commonly used frontend utility functions
Num
Description
Provides functions for number manipulation and arithmetic operations with precision.
Functions
getNthLargest(arr: number[], n: number): number | null- Returns the nth largest number in an array.
- Params:
arr(array of numbers),n(position) - Returns: nth largest number or
nullif n exceeds array length.
getDecimalPlaces(num: number): number- Returns the number of decimal places in a number.
- Params:
num(number) - Returns: count of decimal places.
addFloat(num1: number, num2: number): number- Adds two floating-point numbers with precision.
- Params:
num1,num2 - Returns: sum with precision.
subtractFloat,multiplyFloat,divideFloat- Perform subtraction, multiplication, and division with precision similar to
addFloat.
- Perform subtraction, multiplication, and division with precision similar to
formatNumber(num: number): string- Formats a number with commas and two decimal places.
- Params:
num - Returns: formatted string.
convertNumberToDecimal(num: string): number- Converts a number string with commas to a decimal.
- Params:
num(string) - Returns: decimal number.
clampNumber(num: number, min: number, max: number): number- Clamps a number between a minimum and maximum value.
- Params:
num,min,max - Returns: clamped number.
convertNumberBase(number: number, base: number = 10): string- Converts a number to a different base (2-36).
- Params:
number,base - Returns: string representation in the new base.
isNumberInteger(num: number): boolean- Checks if a number is an integer.
- Params:
num - Returns:
trueif integer.
padNumber(num: number | string, padNum: number | string, length: number = 2): string- Pads a number with a specified character to a specified length.
- Params:
num,padNum,length - Returns: padded string.
Array
Description
Utility functions for array manipulation.
Functions
generateArrayNumbers(n: number, start: number = 1): number[]- Generates an array of numbers starting from a given number.
- Params:
n(length),start(starting number) - Returns: array of numbers.
flattenArray<T>(arr: T[], depth: number = 1): any[]- Flattens a nested array up to a specified depth.
- Params:
arr,depth - Returns: flattened array.
removeArrayDuplicates<T>(arr: T[], value: T): T[]- Removes duplicates of a specific value from an array.
- Params:
arr,value - Returns: array with duplicates removed.
findAllIndexes<T>(arr: T[], value: T): number[]- Finds all indexes of a value in an array.
- Params:
arr,value - Returns: array of indexes.
isEmptyArray<T>(arr: T[]): boolean- Checks if an array is empty.
- Params:
arr - Returns:
trueif empty.
sortArrayAscending(arr: number[]): number[]- Sorts an array in ascending order.
- Params:
arr - Returns: sorted array.
sortArrayDescending,bubbleArraySort- Sort in descending order and bubble sort implementation.
uniqueArray<T>(arr: T[]): T[]- Returns an array with unique values.
- Params:
arr - Returns: array of unique values.
omitArrayValues<T>(arr: T[], values: T[]): T[]- Removes specified values from an array.
- Params:
arr,values - Returns: filtered array.
arrayToMap(array: [string, any][]): Map<string, any>- Converts an array of key-value pairs to a Map.
- Params:
array - Returns: Map.
mergeArrays<T>(...arrays: T[][]): T[]- Merges multiple arrays into one.
- Params: variable number of arrays
- Returns: merged array.
Async
Description
Utilities for asynchronous operations.
Functions
sleep(ms: number): Promise<void>- Pauses execution for specified milliseconds.
- Params:
ms - Returns: Promise that resolves after delay.
executeAsyncFunctionsInOrder(functions: Function[]): Promise<AsyncResult[]>- Executes async functions in order.
- Params: array of async functions
- Returns: results array.
executeAsyncFunctionsConcurrently(functions: Function[]): Promise<any[]>- Runs async functions concurrently.
- Params: array of async functions
- Returns: results array.
runWithConcurrencyInLimit(tasks: Function[], maxConcurrency: number): Promise<any[]>- Runs tasks with concurrency limit.
- Params:
tasks,maxConcurrency - Returns: results array.
asyncify(fn: Function): Promise<(...args: any[]) => Promise<any>>- Converts a sync function to async.
- Params:
fn - Returns: async function wrapper.
Boolean
Description
Boolean value checking and manipulation.
Functions
checkAllTrue(...args: any[]): boolean- Checks if all arguments are truthy.
- Params: variable arguments
- Returns:
trueif all truthy.
checkAnyTrue,checkAllFalse,checkAnyFalse- Similar checks for any truthy, all falsy, any falsy.
classIf(condition: any, className: string): string- Returns class name if condition is true.
- Params:
condition,className - Returns: class name or empty string.
filterTruthyProps(obj: Record<string, any>): Record<string, any>- Filters object to include only truthy properties.
- Params:
obj - Returns: filtered object.
toBoolean(value: any): boolean- Converts value to boolean.
- Params:
value - Returns: boolean value.
isTrue(value: any): boolean,isFalse(value: any): boolean- Check if value is truthy or falsy.
Browser
Description
Browser-related utilities for URL and storage operations.
Functions
getUrlParam(name: string): string | null- Gets a URL parameter value.
- Params:
name - Returns: parameter value or
null.
hasUrlParam(name: string): boolean- Checks if URL parameter exists.
- Params:
name - Returns:
trueif exists.
setUrlParam(name: string, value: string): void- Sets a URL parameter.
- Params:
name,value
removeUrlParam(name: string): void- Removes a URL parameter.
- Params:
name
getAllUrlParams(): Record<string, string>- Gets all URL parameters as an object.
- Returns: object of parameters.
getCurrentUrlInfo(): { href, protocol, host, hostname, pathname, search, hash }- Returns current URL information.
- Returns: URL components object.
detectDeviceType(): 'mobile' | 'tablet' | 'desktop'- Detects device type based on user agent.
- Returns: device type string.
getBrowserType(): BrowserType- Detects browser type.
- Returns: browser name.
StorageOperator Class
static setKey(key: string, value: object, expireHours: number = 24): void- Sets a value in localStorage with expiration.
- Params:
key,value,expireHours
static getKey(key: string): object | null- Gets a value from localStorage, respects expiration.
- Params:
key - Returns: value or
nullif expired.
static removeKey(key: string): void- Removes a key from localStorage.
- Params:
key
Date
Description
Date and time utility functions.
Functions
getCurrentLocalDateTime(): string- Gets current local date and time.
- Returns: formatted string.
getSpecificLocalDateTime(date: Date): string- Gets specific local date and time.
- Params:
date - Returns: formatted string.
getCurrentLocalDate(): string,getCurrentLocalTime(): string- Get current date or time in specific formats.
getSpecificLocalDate(date: Date): string,getSpecificTime(date: Date): string- Get specific date or time in formats.
getUtcTime(): string- Gets current UTC time string.
- Returns: UTC time string.
getFormatDate(date: Date, format: string = '-'): string- Formats date with custom separator.
- Params:
date,format - Returns: formatted date string.
getFormatTime(date: Date, format: string = ':'): string- Formats time with custom separator.
- Params:
date,format - Returns: formatted time string.
getSpecificDateTime(date: Date, formatDate: string = '-', formatTime: string = ':'): string- Combines formatted date and time.
- Params:
date,formatDate,formatTime - Returns: combined string.
getRelativeTime(date: Date): string- Returns relative time string (e.g., "2 days ago").
- Params:
date - Returns: relative time string.
dateDiff(date1: Date, date2: Date, unit: DateUnit): number- Calculates difference between two dates in specified unit.
- Params:
date1,date2,unit - Returns: difference value.
getFirstDayOfMonth(date: Date): Date- Gets first day of the month for a date.
- Params:
date - Returns: first day Date.
getLastDayOfMonth(date: Date): number- Gets last day of the month for a date.
- Params:
date - Returns: day number.
Dom
Description
DOM manipulation and interaction utilities.
Functions
getDomHeight(): number,getDomWidth(): number- Gets DOM height or width.
- Returns: dimension value.
getViewportHeight(): number,getViewportWidth(): number- Gets viewport height or width.
- Returns: dimension value.
getScrollTop(): number,getScrollLeft(): number- Gets scroll position.
- Returns: scroll value.
mouseInElement(element: HTMLElement, x: number, y: number): boolean- Checks if coordinates are inside an element.
- Params:
element,x,y - Returns:
trueif inside.
mousePositioninElement(element: HTMLElement, event: MouseEvent): { x: number, y: number } | null- Gets mouse position relative to element.
- Params:
element,event - Returns: position object or
null.
getMousePosition(event: MouseEvent): { x: number, y: number }- Gets mouse position in document.
- Params:
event - Returns: position object.
getRealElementHeight(element: HTMLElement): number,getElementRealWidth(element: HTMLElement): number- Gets real dimensions of an element including scroll.
- Params:
element - Returns: dimension value.
isElInViewport(el: HTMLElement): boolean- Checks if element is visible in viewport.
- Params:
el - Returns:
trueif visible.
removeElement(el: HTMLElement): void- Removes element from DOM.
- Params:
el
containSpecificEl(el: HTMLElement, child: HTMLElement): boolean- Checks if element contains a child.
- Params:
el,child - Returns:
trueif contains.
findAllChildElements(el: HTMLElement): HTMLElement[]- Finds all child elements of a given element.
- Params:
el - Returns: array of child elements.
hasChildElements(el: HTMLElement): boolean- Checks if element has child elements.
- Params:
el - Returns:
trueif has children.
documentHasFocus(): boolean- Checks if document has focus.
- Returns:
trueif focused.
getElementPosition(el: HTMLElement): { top, left, width, height }- Gets element position and dimensions.
- Params:
el - Returns: position object.
addEventListener(target: HTMLElement, event: keyof HTMLElementEventMap, callback: () => void, options: AddEventListenerOptions = {}): void- Adds event listener with browser compatibility.
- Params:
target,event,callback,options
downloadFile(data: any, fileName: string): void- Downloads data as a file.
- Params:
data,fileName
downloadImage(imgElement: HTMLImageElement, fileName: string): void- Downloads image from element.
- Params:
imgElement,fileName
downloadImageByUrl(imgUrl: string, fileName: string): void- Downloads image by URL.
- Params:
imgUrl,fileName
uploadFile(fileInput: HTMLInputElement, callback: (data: string, fileName: string) => void): void- Uploads file and calls callback with data.
- Params:
fileInput,callback
copyToClipboard(text: string): Promise<boolean>- Copies text to clipboard.
- Params:
text - Returns: Promise indicating success.
readFromClipboard(): Promise<string>- Reads text from clipboard.
- Returns: Promise with clipboard text.
Env
Description
Environment detection utilities.
Functions
isReactEnv(): boolean,isVueEnv(): boolean,isAngularEnv(): boolean,isSvelteEnv(): boolean,isPreactEnv(): boolean,isSolidEnv(): boolean- Check if current environment is a specific framework environment.
- Returns:
trueif framework is detected.
isNodeEnv(): boolean- Checks if environment is Node.js.
- Returns:
truein Node.js.
isMobile(): boolean- Checks if browser is on a mobile device.
- Returns:
trueif mobile.
curBrowser(): BrowserName- Gets current browser name.
- Returns: browser name string.
hasGlobalVariable(variable: string | number): boolean- Checks if a global variable exists.
- Params:
variable - Returns:
trueif exists.
Function
Description
Function utilities for execution control and composition.
Functions
retryFn(fn: () => Promise<any>, maxAttempts: number = 3, delay: number = 1000): Promise<any>- Retries an async function with exponential backoff.
- Params:
fn,maxAttempts,delay - Returns: Promise with result.
TimedFn(fn: (...args: any[]) => any): (...args: any[]) => any- Decorator to log function execution time.
- Params:
fn - Returns: wrapped function.
onceFn(fn: Function): (...args: any[]) => any- Ensures a function is executed only once.
- Params:
fn - Returns: controlled function.
memoizeFn(fn: Function): (...args: any[]) => any- Memoizes function results based on arguments.
- Params:
fn - Returns: memoized function.
pipeFn(...fns: Function[]): (value: any) => any- Creates a pipeline of functions.
- Params: functions array
- Returns: pipeline function.
curryFn(fn: Function): (...args: any[]) => any- Curries a function for partial application.
- Params:
fn - Returns: curried function.
Is
Description
Type checking utilities.
Functions
isType(value: unknown, type: string): boolean- Checks if value is of a specific type.
- Params:
value,type - Returns:
trueif matches.
Type-specific checks:
isNumber,isString,isArray,isObject,isFunction,isBoolean,isNull,isUndefined,isDate,isRegExp,isSymbol,isBigInt,isError,isDateTime,isMap,isSet,isWeakMap,isWeakSet,isPromise,isElement- Each checks for their respective types.
- Params:
value - Returns:
trueif matches.
Json
Description
JSON data manipulation utilities.
Functions
flattenJsonObject(obj: Record<string, any>, prefix: string = '', result: Record<string, any> = {}): Record<string, any>- Flattens nested JSON object.
- Params:
obj,prefix,result - Returns: flattened object.
unFlattenJsonObject(obj: Record<string, any>, separator: string = '.'): Record<string, any>- Unflattens JSON object.
- Params:
obj,separator - Returns: nested object.
getJsonObjectDiff(obj1: Record<string, any>, obj2: Record<string, any>): Record<string, { oldValue: any, newValue: any }>- Gets differences between two JSON objects.
- Params:
obj1,obj2 - Returns: differences object.
renameJsonObject(obj: Record<string, any>, renameMap: Record<string, string>): Record<string, any>- Renames keys in JSON object.
- Params:
obj,renameMap - Returns: renamed object.
jsonToQueryString(obj: Record<string, any>, prefix: string = ''): string- Converts JSON to query string.
- Params:
obj,prefix - Returns: query string.
Log
Description
Logging utility with different levels and styling.
Logger Class
constructor(name: string = 'global', level: LogLevel = LogLevel.DEBUG)- Initializes logger with name and level.
- Params:
name,level
setLevel(level: LogLevel): void- Sets logging level.
- Params:
level
debug(...args: any[]): void,info(...args: any[]): void,warn(...args: any[]): void,error(...args: any[]): void- Log messages at different levels.
- Params: variable arguments
time(label: string): () => void- Starts a timer and returns a stop function.
- Params:
label - Returns: stop function that logs duration.
Map
Description
Map utility functions.
Functions
safeGetMapValue<K, V>(map: Map<K, V>, key: K, defaultVal: V | undefined): V | undefined- Safely gets a value from a Map with default.
- Params:
map,key,defaultVal - Returns: value or default.
mapToObject(map: Map<string, any>): Record<string, any>- Converts Map to plain object.
- Params:
map - Returns: object.
mapToArray<K, V>(map: Map<K, V>): [K, V][]- Converts Map to array of entries.
- Params:
map - Returns: array.
areMapsEqual<K, V>(map1: Map<K, V>, map2: Map<K, V>): boolean- Checks if two Maps are equal.
- Params:
map1,map2 - Returns:
trueif equal.
mergeMaps<K, V>(...maps: Map<K, V>[]): Map<K, V>- Merges multiple Maps.
- Params: variable Maps
- Returns: merged Map.
Math
Description
Mathematical utility functions.
Functions
getRandomInt(min: number, max: number): number- Gets random integer between min and max.
- Params:
min,max - Returns: random integer.
getRandomFromArray<T>(array: T[]): T- Gets random element from array.
- Params:
array - Returns: random element.
getInteger(num: number): number- Gets integer part of a number.
- Params:
num - Returns: integer value.
getFloat(num: number): number- Gets decimal part of a number.
- Params:
num - Returns: decimal value.
radianToAngle(radian: number): number,angleToRadian(angle: number): number- Converts between radians and degrees.
- Params: value in respective unit
- Returns: converted value.
getRadian(x: number, y: number, centerX: number, centerY: number): number- Gets radian between point and circle center.
- Params: coordinates
- Returns: radian value.
Obj
Description
Object manipulation utilities.
Functions
objDeepClone<T>(target: Record<string | number, any> | T[]): Record<string | number, any> | T[]- Deep clones an object or array.
- Params:
target - Returns: clone.
objShallowClone<T>(target: object | T[]): object | T[]- Shallow clones an object or array.
- Params:
target - Returns: clone.
isEqual(obj1: Record<string, any>, obj2: Record<string, any>): boolean- Checks deep equality of two objects.
- Params:
obj1,obj2 - Returns:
trueif equal.
objInheritPrototype(child: any, parent: any): void- Inherits prototype from parent to child.
- Params:
child,parent
isEmptyObject(obj: object): boolean- Checks if object is empty.
- Params:
obj - Returns:
trueif empty.
objPick(obj: Record<string, any>, keys: (string | number)[]): Record<string, any>- Picks specific keys from object.
- Params:
obj,keys - Returns: picked properties object.
objOmit(obj: Record<string, any>, keys: (string | number)[]): Record<string, any>- Omits specific keys from object.
- Params:
obj,keys - Returns: omitted properties object.
objToQueryString(obj: object): string- Converts object to query string.
- Params:
obj - Returns: query string.
objectToMap(obj: Record<string, any>): Map<string, any>- Converts object to Map.
- Params:
obj - Returns: Map.
mergeObjects<T extends Record<string, any>>(...objects: T[]): T- Merges multiple objects.
- Params: variable objects
- Returns: merged object.
freezeObject<T extends Record<string, any>>(obj: T): Readonly<T>- Recursively freezes an object.
- Params:
obj - Returns: frozen object.
freezeObjectShallow<T extends Record<string, any>>(obj: T): Readonly<T>- Freezes object shallowly.
- Params:
obj - Returns: frozen object.
freezeObjectPickKeys<T extends Record<string, any>>(obj: T, keys: (string | number)[]): void- Freezes specific keys of an object.
- Params:
obj,keys
Proxy
Description
Proxy creation utilities for object control.
Functions
createValidatorProxy<T extends object>(target: T, validator: Validator): T- Creates a proxy that validates property assignments.
- Params:
target,validator - Returns: proxy object.
createReadonlyProxy<T extends object>(target: T): T- Creates a read-only proxy.
- Params:
target - Returns: read-only proxy.
createObservableProxy<T extends object>(target: T, onChange: (prop: string | symbol, value: any) => void): T- Creates a proxy that notifies on changes.
- Params:
target,onChange - Returns: observable proxy.
createCallFnAspectProxy(target: Function, callFn: (prop: string | symbol, args: any[]) => void, before: boolean = true): Function- Creates a proxy for function call interception.
- Params:
target,callFn,before - Returns: proxy function.
withPrivatePropsProxy<T extends object>(target: T, privateProps: (string | symbol)[]): T- Creates a proxy with private properties.
- Params:
target,privateProps - Returns: proxy with access control.
Regexp
Description
Regular expression validation utilities.
Functions
validEmail(email: string): boolean- Validates email format.
- Params:
email - Returns:
trueif valid.
validPassword(password: string): boolean- Validates password strength (8+ chars, mixed case, digits).
- Params:
password - Returns:
trueif valid.
validIdCard(idCard: string): boolean- Validates ID card number format.
- Params:
idCard - Returns:
trueif valid.
validateURL(url: string): boolean- Validates URL format.
- Params:
url - Returns:
trueif valid.
validateFormatDate(date: string, format: string): boolean- Validates date string against format (e.g., 'YYYY-MM-DD').
- Params:
date,format - Returns:
trueif valid.
Request
Description
HTTP request utilities using XMLHttpRequest.
Functions
getRequest(url: string, params: object = {}): Promise<any>- Makes a GET request.
- Params:
url,params - Returns: Promise with response.
postRequest(url: string, data: object): Promise<any>- Makes a POST request.
- Params:
url,data - Returns: Promise with response.
delRequest(url: string, params: object = {}): Promise<any>- Makes a DELETE request.
- Params:
url,params - Returns: Promise with response.
putRequest(url: string, data: object): Promise<any>- Makes a PUT request.
- Params:
url,data - Returns: Promise with response.
Set
Description
Set operations utilities for arrays.
Functions
uninonSet<T>(...args: T[][]): T[]- Computes union of multiple arrays.
- Params: variable arrays
- Returns: union array.
intersectionSet<T>(...args: T[][]): T[]- Computes intersection of multiple arrays.
- Params: variable arrays
- Returns: intersection array.
differenceSet<T>(arr1: T[], arr2: T[]): T[]- Computes difference between two arrays.
- Params:
arr1,arr2 - Returns: difference array.
symmetricDifferenceSet<T>(arr1: T[], arr2: T[]): T[]- Computes symmetric difference between two arrays.
- Params:
arr1,arr2 - Returns: symmetric difference array.
isSubset<T>(arr1: T[], arr2: T[]): boolean- Checks if one array is a subset of another.
- Params:
arr1,arr2 - Returns:
trueif subset.
isSuperset<T>(arr1: T[], arr2: T[]): boolean- Checks if one array is a superset of another.
- Params:
arr1,arr2 - Returns:
trueif superset.
mapSet<T, U>(arr: Set<T>, callback: (item: T) => U): U[]- Maps a Set to an array using a callback.
- Params:
arr,callback - Returns: mapped array.
String
Description
String manipulation utilities.
Functions
truncateStr(str: string, maxLen: number, suffix: string = '...'): string- Truncates string to maximum length with suffix.
- Params:
str,maxLen,suffix - Returns: truncated string.
camelToKebab(str: string): string- Converts camelCase to kebab-case.
- Params:
str - Returns: converted string.
kebabToCamel(str: string): string- Converts kebab-case to camelCase.
- Params:
str - Returns: converted string.
escapeHTML(str: string): string- Escapes HTML characters in a string.
- Params:
str - Returns: escaped string.
unescapeHTML(str: string): string- Unescapes HTML characters in a string.
- Params:
str - Returns: unescaped string.
isValieUrl(url: string): boolean- Validates if a string is a valid URL.
- Params:
url - Returns:
trueif valid.
capitalizeStr(str: string): string- Capitalizes the first character of a string.
- Params:
str - Returns: capitalized string.
countOccurrences(str: string, char: string): number- Counts occurrences of a character in a string.
- Params:
str,char - Returns: count.
encodebase64(str: string): string- Encodes string to base64.
- Params:
str - Returns: base64 string.
decodebase64(str: string): string- Decodes base64 string.
- Params:
str - Returns: decoded string.
generateRandomString(length: number = 10, chars: string = 'A-Za-z0-9'): string- Generates a random string.
- Params:
length,chars - Returns: random string.
trimString(str: string): string- Trims whitespace from string.
- Params:
str - Returns: trimmed string.
This documentation covers all the provided modules in the Core-Fed-Util library. Each function and class is designed to simplify common programming tasks and improve code readability and maintainability.
