Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

react-js-plugins

shivaji.surwase1.1kMIT3.11.0TypeScript support: included

A powerful and efficient React utility library designed to enhance application performance by streamlining and simplifying the management of complex asynchronous operations.

react-utils, helper, plugins, utility, functions, utils, toolkit, common-functions, shared-utils, utility-functions, javascript-helpers, typescript-utils, core-utils, react-utils, react-helpers, frontend-utils, reusable-functions, browser-helpers, form-utils, validation-utils

readme

react-js-plugins package is a lightweight and powerful toolkit for developers, providing reusable solutions for various application requirements. react-js-plugins offers a comprehensive collection of utility functions designed to simplify common development tasks. Key functionalities include form validation, date formatting, array/object manipulation, and exporting data to Excel. Additional features include browser/device detection, storage management, reducers, performance optimization utilities, and string/number formatting tools.

⚠️ Deprecated Notice

❌ Deprecated: createPublicInstance and createPrivateInstance (above version 3)
✔️ New Method: createAxiosInstance

Installation

Install the package:

npm install react-js-plugins
# or
pnpm add react-js-plugins

Authors

NPM   npm   npm   NPM   NPM Unpacked Size

Browser Support

Firefox Chrome Safari Opera Edge
Latest ✔ Latest ✔ Latest ✔ Latest ✔ Latest ✔

Documentation Site in Progress...

We're building an enhanced documentation experience with better navigation and examples. Coming soon!

createAxiosInstance

Creates a preconfigured instance for authenticated API calls. It supports automatic date formatting, optional data encryption/decryption, seamless data transformation, enhanced security, and built-in error handling with full cross-browser compatibility.

const apiPrivate = createAxiosInstance({
  baseURL: 'https://jsonplaceholder.typicode.com',
  timeout: 30000,
  withCredentials: true,
  enableDateTransform: true,
  transformRequest: (data) => transform(data),
  transformResponse: (data) => transform(data),
  handleAuthError: async (instance, originalRequest, error) => {
    console.error('API Error:', error.message);
  },
});

_arrayDiff

Returns the difference between two arrays.

const diff = _arrayDiff(['a', 'b'], ['b']); // ['a']

_arrayIncludesObject

Checks if array contains object (by value).

_arrayIncludesObject(arr, obj);

_arrayIntersection

Returns common elements between two arrays.

_arrayIntersection([1,2,3], [2,3,4]); // [2,3]

_arrayToObject

Converts array of key-value pairs to object.

_arrayToObject([['a', 1], ['b', 2]]); // { a: 1, b: 2 }

_arrayToObjectByKey

Converts array of objects to object using a key.

_arrayToObjectByKey(users, 'id');

_asyncMap

Async map over array items one by one.

const results = await _asyncMap(ids, fetchById);

_average

Calculates the average of numbers in an array.

_average([4, 8]); // 6

_batchProcess

Processes an array of data in asynchronous batches.

await _batchProcess(myArray, 10, async (item) => {
  await handleItem(item);
});

_chunk

Splits an array into chunks of a given size.

const parts = _chunk([1, 2, 3, 4], 2); // [[1,2], [3,4]]

_deepCloneArray

Deeply clones an array of objects.

const cloned = _deepCloneArray(originalArray);

_deepCompareArrays

Checks if two arrays are deeply equal.

const isEqual = _deepCompareArrays(arr1, arr2);

_extractKeyValues

Extracts all non-undefined values for a specific key from an array.

const employees = [
  { id: 1, name: "Alice" },
  { id: 2 },
  { id: 3, name: "Bob" },
];
_extractKeyValues(employees, "name"); // ["Alice", "Bob"]

_extractNestedKeyValues

Extracts all non-undefined values from a nested key path in an array of objects.

const users = [
  { id: 1, address: { city: "Mumbai" } },
  { id: 2, address: { city: "Pune" } },
  { id: 3 },
];
_extractNestedKeyValues(users, "address.city"); // ["Mumbai", "Pune"]

_extractUniqueValues

Extracts unique values from an array based on a specific key.

const employees = [
  { id: 1, department: "HR" },
  { id: 2, department: "IT" },
  { id: 3, department: "HR" },
];
_extractUniqueValues(employees, "department"); // ["HR", "IT"]

_filterArrayByKeyValue

Filters an array by a key-value match. Defaults to filtering where the key's value is true.

const enabledUsers = _filterArrayByKeyValue(userList, "isActive", true);

_filterByMatchedKey

Filters list1 based on matching key values from list2.

const filtered = _filterByMatchedKey(usersList, activeUsers, "userId");

_filterByMatchingKey

Filters list1 by comparing the key's value in list2, with more validation than _filterByMatchedKey.

const filtered = _filterByMatchingKey(productList, inStockItems, "productId");

_filterDuplicates

Removes duplicates based on a specific object key.

const unique = _filterDuplicates(users, 'id');

_findObjectById

Finds an object in an array by its id.

const item = _findObjectById(items, '123');

_flattenArray

Flattens nested arrays by recursively extracting item.data if present.

const flat = _flattenArray(nestedArray);

_flattenArrayByKey

Flattens an array of objects by extracting and combining values from a specified key.

_flattenArrayByKey([{ id: 1, items: ['a', 'b'] }, { id: 2, items: ['c'] }], 'items'); 
// ['a', 'b', 'c']

_getArrayOfObjectsByProperty

Returns all objects with a specific property value.

_getArrayOfObjectsByProperty(data, 'type', 'active');

_getMaxMinValue

Finds the max and min values in an array.

const { max, min } = _getMaxMinValue([5, 2, 9]);

_getUniqueValues

Returns an array of unique values.

const unique = _getUniqueValues([1, 2, 2, 3]);

_groupBy

Groups array items by a given key.

const grouped = _groupBy(users, 'department');

_hasElement

Searches recursively in a menu tree to find an element by key and value.

const found = _hasElement(menuItems, "id", 5);

_hasItem

Searches recursively in a menu tree to find an item by path.

const item = _hasItem(menuItems, "/dashboard");

_isEmptyArray

Checks if a given value is an empty array.

const isEmpty = _isEmptyArray([]);

_isInArray

Checks if a value exists in array.

_isInArray(['a', 'b'], 'b'); // true

_isValueInArray

Checks whether a value exists in a given array.

const exists = _isValueInArray([1, 2, 3], 2);

_mapAsync

Parallel async map over array.

const data = await _mapAsync(users, fetchDetails);

_mergeArrays

Merges two arrays and removes duplicates.

const merged = _mergeArrays(arr1, arr2);

_mergeArraysByKey

Merges two arrays of objects based on a common key.

const merged = _mergeArraysByKey(arr1, arr2, 'id');

_removeFalsy

Removes all falsy values (false, 0, '', null, undefined, NaN) from an array.

const cleaned = _removeFalsy([0, 1, false, 2, '', 3]); // [1, 2, 3]

_removeDuplicateByKey

Removes duplicates based on a specific key (e.g. id), keeping the first occurrence.

const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 1, name: 'Alice Duplicate' },
];
const uniqueUsers = _removeDuplicateByKey(users, 'id');
// Result: [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }]

_removeDuplicates

Removes duplicate objects based on a key.

const cleaned = _removeDuplicates(data, 'email');

_sortByKey

Sorts array of objects by a specific key.

const sorted = _sortByKey(products, 'price');

_sum

Returns the sum of an array of numbers.

_sum([1, 2, 3]); // 6

_swapArrayByKey

Sorts an array in descending order based on a key.

const sorted = _swapArrayByKey(data, 'score');

_swapArrayElements

Swaps two elements in an array.

_swapArrayElements(arr, 0, 1);

_transformArray

Applies a transformation function to each item in an array.

const result = _transformArray(users, user => user.name);

_transformAsyncData

Applies a transformer to each array item asynchronously.

const updated = await _transformAsyncData(data, transformFn);

_updateObjectInArray

Updates a matching object in an array by key-value.

const updated = _updateObjectInArray(users, 'id', '123', { name: 'New Name' });

_deepClone

Deep clones an object using JSON.stringify and JSON.parse.

const clone = _deepClone(originalObj);

_deepEqual

Deep comparison between two objects.

const isSame = _deepEqual(objA, objB);

_deepMerge

Recursively merges two objects.

const merged = _deepMerge(obj1, obj2);

_filterObjectByKey

Filters object based on allowed keys.

_filterObjectByKey(user, ['id', 'name']);

_flattenObject

Flattens a nested object into dot notation key-value pairs.

const flat = _flattenObject({ a: { b: 1 } }); // { 'a.b': 1 }

_freeze

Freezes an object to make it immutable.

const frozen = _freeze(config);

_getKeyByValue

Returns the first key in an object with the matching value.

const key = _getKeyByValue(obj, 'targetValue');

_getKeysByValue

Finds all keys in an object with a specific value.

const keys = _getKeysByValue(obj, 'active');

_getNestedProperty

Retrieves value from object using a string path.

const value = _getNestedProperty(user, 'profile.name');

_getObjectValues

Returns object values as an array.

_getObjectValues({ a: 1, b: 2 }); // [1, 2]

_getValueByKey

Returns the value of a key from an object.

const value = _getValueByKey(obj, 'username');

_isEmptyObject

Checks if an object has no own properties.

const isObjEmpty = _isEmptyObject({});

_isEqual

Checks deep equality of two values using JSON.stringify.

const isSame = _isEqual(obj1, obj2);

_isFreeze

Checks if object is frozen.

_isFreeze(obj); // true/false

_isSeal

Checks if object is sealed.

_isSeal(obj); // true/false

_mapObject

Maps over an object and returns an array using a callback.

const result = _mapObject(myObj, (key, value) => `${key}: ${value}`);

_mergeObjects

Merges two objects, giving priority to the second object's properties.

const merged = _mergeObjects(obj1, obj2);

_objectToArray

Converts object to array of key-value pairs.

_objectToArray({ a: 1 }); // [['a', 1]]

_seal

Seals an object to prevent adding/removing properties.

_seal(settings);

_setNestedProperty

Sets a deeply nested property in an object using a string path.

_setNestedProperty(obj, 'user.address.city', 'Mumbai');

_dynamicRequiredValidation

Generates a Yup schema with required validations for given fields.

const schema = _dynamicRequiredValidation(['name', 'email']);

_generateYupValidation

Creates a Yup validation schema with all fields marked as required.

const schema = _generateYupValidation(['name', 'age']);

_initializeFormikFields

Returns an object with default empty string values for Formik fields.

const formikFields = _initializeFormikFields(['username', 'password']);

_initializeFormValues

Initializes form values with empty strings for each field.

const initialValues = _initializeFormValues(['name', 'email']);

_isValidForm

Validates a Formik form and returns whether it's valid.

const isValid = await _isValidForm(formRef);

_setTouchedFields

Marks all fields with errors as touched in a Formik form.

_setTouchedFields(formRef, errors);

_validateFormRef

Returns form validity and error details from a Formik ref.

const { isValid, errors } = await _validateFormRef(formRef);

_isValidBase64

Checks if a string is a valid Base64-encoded value.

const isValid = _isValidBase64('U29tZSB0ZXh0');

_isValidBlob

Checks if the input is a Blob.

const isValid = _isValidBlob(new Blob(['text']));

_isValidBoolean

Checks if the input is a boolean.

const isValid = _isValidBoolean(true);

_isValidCreditCard

Checks if a string matches known credit card patterns.

const isValid = _isValidCreditCard('4111111111111111');

_isValidDate

Checks if a string matches the YYYY-MM-DD date format.

const isValid = _isValidDate('2025-04-09');

_isValidDateObject

Checks if the input is a valid Date object.

const isValid = _isValidDateObject(new Date());

_isValidDateRange

Checks if the start date is earlier than or equal to the end date.

const isValid = _isValidDateRange('2025-01-01', '2025-12-31');

_isValidDateTime

Checks if a string matches the YYYY-MM-DDTHH:mm:ss format.

const isValid = _isValidDateTime('2025-04-09T12:30:00');

_isValidDateString

Checks if the string can be parsed as a valid date.

const isValid = _isValidDateString('2025-04-09');

_isValidEmail

Checks if a string is a valid email address.

const isValid = _isValidEmail('user@example.com');

_isValidEvent

Checks if the input is an instance of Event.

const isValid = _isValidEvent(new Event('click'));

_isValidFile

Checks if the input is a File.

const isValid = _isValidFile(new File([''], 'file.txt'));

_isValidFormData

Checks if the input is a FormData instance.

const isValid = _isValidFormData(new FormData());

_isValidFunction

Checks if the input is a valid function.

const isValid = _isValidFunction(() => {});

_isValidHexColor

Checks if a string is a valid hex color code.

const isValid = _isValidHexColor('#FF5733');

_isValidHTMLCollection

Checks if the input is an HTMLCollection.

const isValid = _isValidHTMLCollection(document.forms);

_isValidHTMLElement

Checks if the input is an instance of HTMLElement.

const isValid = _isValidHTMLElement(document.body);

_isValidIP

Checks if a string is a valid IPv4 address.

const isValid = _isValidIP('192.168.1.1');

_isValidJSON

Checks if a string is valid JSON.

const isValid = _isValidJSON('{"name":"John"}');

_isValidMacAddress

Checks if a string is a valid MAC address.

const isValid = _isValidMacAddress('00:1A:2B:3C:4D:5E');

_isValidNode

Checks if the input is a Node.

const isValid = _isValidNode(document.createTextNode('text'));

_isValidNodeList

Checks if the input is a NodeList.

const isValid = _isValidNodeList(document.querySelectorAll('div'));

_isValidNumber

Checks if the input is a valid number.

const isValid = _isValidNumber(123.45);

_isValidPassword

Checks if a password has 8+ characters, at least 1 letter and 1 number.

const isValid = _isValidPassword('Abc12345');

_isValidPhoneNumber

Checks if a string is a valid international phone number (10–15 digits).

const isValid = _isValidPhoneNumber('+919876543210');

_isValidPromise

Checks if the input is a Promise.

const isValid = _isValidPromise(Promise.resolve());

_isValidRegExp

Checks if the input is a regular expression.

const isValid = _isValidRegExp(/abc/);

_isValidString

Checks if the input is a non-empty string.

const isValid = _isValidString('Hello');

_isValidTime

Checks if a string is a valid 24-hour HH:mm format.

const isValid = _isValidTime('23:59');

_isValidURL

Checks if a string is a valid URL format.

const isValid = _isValidURL('https://example.com');

_isValidURLSearchParams

Checks if the input is a URLSearchParams instance.

const isValid = _isValidURLSearchParams(new URLSearchParams());

_isValidUsername

Checks if a username is 3+ characters and contains only letters, numbers, dots, underscores, or hyphens.

const isValid = _isValidUsername('john_doe');

_isValidUUID

Checks if a string is a valid UUID (v1 to v5).

const isValid = _isValidUUID('550e8400-e29b-41d4-a716-446655440000');

_isTruncate

Checks if text would be truncated based on the character limit.

 _isTruncate('This is a long text example', 10);
// Returns: true

_encryptJson

Encrypts a JSON object using AES encryption with a secret key.

const encrypted = _encryptJson({ name: "John" }, "secret123");

_decryptJson

Decrypts AES-encrypted JSON string using a secret key.

const decrypted = _decryptJson(encryptedString, "secret123");

_encryptString

Encrypts a plain string using AES encryption, with optional random IV.

const result = _encryptString("mySecretText", "secretKey");

_decryptString

Decrypts an AES-encrypted string using the provided IV and secret key.

const plainText = _decryptString(ciphertext, iv, "secretKey");

_encrypt

Encrypts a full JSON payload using a random key and IV, both of which are secured by a main secret key. This ensures that each encryption produces a unique ciphertext, even for the same input data.

const encryptedPayload = _encrypt({ userId: 101, role: "admin" }, "mainSecretKey");

/*
 Returns:
 {
   data: "<AES-encrypted JSON payload>",
   header: "<Encrypted random key & IV using mainSecretKey>",
   iv: "<Base64 IV used for header encryption>"
 }
*/

_decrypt

Securely decrypts a payload that was encrypted using _encrypt. It first decrypts the header (which contains the AES key and IV), then uses those to decrypt the main payload.

const decryptedPayload = _decrypt(encryptedPayload, "mainSecretKey");

/*
 Returns:
 { userId: 101, role: "admin" }
*/

_encryptData

Encrypts payload or data using AES encryption with a static IV.

const result = _encryptData({
  data: { userId: 123, role: "admin" },
  secretKey: "Base64EncodedSecretKey",
  iv: "Base64EncodedIV"
});

_decryptData

Decrypts encrypted data (produced by _encryptData) back into the original string or object.

const result = _decryptData({
  data: "U2FsdGVkX1+wZyF1ZmFjN1pnWlZ5YVhT0sw==",
  secretKey: "Base64EncodedSecretKey",
  iv: "Base64EncodedIV"
});

_escapeHTML

Escapes special HTML characters to prevent injection or rendering issues.

const safeHTML = _escapeHTML('<div class="test">Tom & Jerry</div>');
// Output: '&lt;div class=&quot;test&quot;&gt;Tom &amp; Jerry&lt;/div&gt;'

_generatePassword

Generates a strong random password with mixed characters.

const newPassword = _generatePassword(12);

_addEventListenerToElement

Attaches an event listener to a DOM element.

_addEventListenerToElement('#my-btn', 'click', handleClick);

_allowAlphaKeys

Allows only alphabetic input and valid control keys.

<input onKeyDown={_allowAlphaKeys} />

_allowAlphaNumericKeys

Allows only alphanumeric keys during typing.

document.addEventListener('keydown', _allowAlphaNumericKeys);

_allowDecimalKeys

Allows only decimal input and valid control keys.

<input onKeyDown={_allowDecimalKeys} />

_clearNode

Hides specific sibling DOM nodes relative to a base element.

_clearNode('.my-element', [{ type: 'previous', steps: 1 }]);

_cloneElement

Clones a DOM element.

const clone = _cloneElement('.to-clone');

_domSelector

Selects a single or all DOM elements matching a CSS selector.

const el = _domSelector('#myElement');
const elements = _domSelector('.list-item', true);

_getChildElements

Returns child elements of a selector.

const children = _getChildElements('.container');

_getElementAttribute

Gets the value of an element's attribute.

const id = _getElementAttribute('.item', 'data-id');

_getElementsByClass

Returns elements with a given class.

const elements = _getElementsByClass('my-class');

_getElementsByTag

Returns elements with a given tag name.

const buttons = _getElementsByTag('button');

_getParent

Returns parent of a DOM element.

const parent = _getParent('.child');

_getScrollPosition

Returns current window scroll position.

const { scrollX, scrollY } = _getScrollPosition();

_handlePasteAlphabetKeys

Prevents pasting non-alphabetic characters.

<input onPaste={_handlePasteAlphabetKeys} />

_handlePasteDecimalKeys

Prevents pasting invalid decimal values.

<input onPaste={_handlePasteDecimalKeys} />

_hideElement

Hides a DOM element by setting its display style to 'none'.

_hideElement('#modal');

_insertHTML

Injects HTML at a specific position.

_insertHTML('#box', 'beforeend', '<div>Hello</div>');

_isDocumentLoaded

Checks if the document has fully loaded.

if (_isDocumentLoaded()) { /* safe to run code */ }

_isElementInViewport

Checks if element is visible in viewport.

const isVisible = _isElementInViewport('.my-element');

_isElementPresent

Checks if an element exists in the DOM.

const exists = _isElementPresent('.my-element');

_onDOMLoad

Executes the callback when the DOM is fully parsed, but before images and other resources are necessarily loaded.

_onDOMLoad(() => {
  const el = document.getElementById('app');
  console.log('DOM ready:', el);
});

_onFullReload

Executes the callback only when the page is reloaded (not on SPA route changes or soft navigation).

_onFullReload(() => {
  console.log('Page was fully reloaded.');
});

_onWindowLoad

Executes the callback when the entire window is fully loaded, including all images and assets.

_onWindowLoad(() => {
  console.log('Window fully loaded!');
});

_reloadAfterLoad

Reloads page after a delay post-load.

_reloadAfterLoad(3000); // Reload 3s after load

_removeAllChildren

Clears all child nodes of an element.

_removeAllChildren('#container');

_removeElement

Removes the first matched DOM element from the document.

_removeElement('#banner');

_removeElementAttribute

Removes an attribute from an element.

_removeElementAttribute('.item', 'data-id');

_removeEventListenerFromElement

Removes a specific event listener.

_removeEventListenerFromElement('#my-btn', 'click', handleClick);

_removeNode

Removes all matched DOM elements from the document.

_removeNode('.temp-item');

_removeSafeElement

Safely removes an element if it exists and has a parent.

_removeSafeElement('#popup');

_replaceContent

Replaces inner HTML of an element.

_replaceContent('#content', '<p>New content</p>');

_runOnIframeLoad

Runs a callback when iframe finishes loading.

_runOnIframeLoad('#myIframe', () => console.log('Loaded'));

_scrollToElement

Scrolls smoothly to an element.

_scrollToElement('#target');

_scrollToTop

Scrolls the page smoothly to the top.

_scrollToTop();

_setElementAttribute

Sets an attribute on a DOM element.

_setElementAttribute('.item', 'data-id', '123');

_setElementDisabled

Enables or disables a DOM element.

_setElementDisabled('#submit-btn', true);

_setMultipleStyles

Applies multiple CSS styles to an element.

_setMultipleStyles('.card', { color: 'red', fontWeight: 'bold' });

_showElement

Displays a hidden DOM element using the provided displayType (default is 'block').

_showElement('#modal');
_showElement('#modal', 'flex');

_base64ToBlob

Converts a base64-encoded string into a Blob object.

const blob = _base64ToBlob(base64String);

_downloadBase64File

Downloads any base64-encoded data as a file with a specified filename and extension.

const base64Image = 'iVBORw0KGgoAAAANSUhEUgAAA...';
downloadBase64File(base64Image, 'my-picture.png');

const base64PDF = 'JVBERi0xLjQKJeLjz9MNCjEgMCBvYmoK...';
downloadBase64File(base64PDF, 'invoice.pdf');

_downloadBlob

Triggers download of a Blob object.

_downloadBlob(blob, 'myfile.pdf');

_exportExcel

Exports JSON data to an Excel or CSV file.

await _exportExcel({
  data: [
    { name: 'siya', age: 5 },
    { name: 'riya', age: 6 },
  ],
  filename: 'users',
})
.then(() => console.log('Export successful'))
.catch((err) => console.error('Export failed:', err.message));

_fileToBase64

Converts a file to a base64-encoded string.

const base64 = await _fileToBase64(file);

_uint8ArrayToBlob

Converts a Uint8Array into a Blob object with the specified MIME type.

const blob = _uint8ArrayToBlob(uint8Array, 'application/pdf');

_octetToBlob

Converts raw binary data (ArrayBuffer, Uint8Array, or number[]) into a Blob object. Useful for handling octet-stream responses from APIs.

const blob = _octetToBlob(arrayBuffer, 'image/png');

_importExcel

Imports data from an Excel file.

const fileInputHandler = async (event: React.ChangeEvent<HTMLInputElement>) => {
  const { data, error } = await _importExcel(event);

  if (error) {
    console.error('Error:', error.message);
    return;
  }

  if (data) {
    console.log('Successfully parsed data:', data);
  }
};

_importFile

Supports multiple types of result formats: base64, buffer, file, unit8array.

const handleChangeFile = async (file) => {
  const result = await _importFile(file, 'base64');
  console.log('result', result);
};

Browser & Storage Functions

_navigate

Navigates to a new path with optional state and replace behavior.

_navigate('/about', { state: { user: 'sia' }, replace: true });

_go

Navigates through the history stack by a specified number of steps.

_go(-2); // Go back 2 pages
_go(1);  // Go forward 1 page

_goBack

Navigates to the previous page in history.

_goBack(); // Equivalent to browser back button

_goForward

Navigates to the next page in history.

_goForward(); // Equivalent to browser forward button

_getCurrentPath

Returns the current pathname from the navigation state.

_getCurrentPath(); // e.g., "/about"

_getCurrentState

Returns the current navigation state object.

_getCurrentState(); // e.g., { user: 'sia' }

_getLocation

Returns both the current path and state as an object.

_getLocation(); // e.g., { pathname: "/about", state: { user: 'sia' } }

_getTypedState

Returns the current navigation state with TypeScript type safety.

interface UserState { name: string; age: number; }
_getTypedState<UserState>(); // Returns typed state or null

_clearRouteState

Removes the route state from the browser's history without reloading the page, keeping the current path intact.

_clearRouteState('/dashboard');

_findExactRoute

Finds an exact route match from an array of routes based on a pathname.

_findExactRoute([{ path: '/users' }, { path: '/users/:id' }], '/users/123'); 
// { path: '/users/:id' }

_copyText

Copies the provided text to the clipboard, using modern APIs with a fallback for older browsers.

const success = await _copyText("Hello, clipboard!");
if (success) {
  console.log("Text copied successfully");
}

_getBrowserInfo

Returns the name of the browser (e.g., Chrome, Firefox).

const browser = _getBrowserInfo();

_getCookie

Retrieves a cookie value by its name.

const token = _getCookie('auth_token');

_getQueryString

Returns the query string from the current URL, supporting both ?search and #hash?search formats.

const query = _getQueryString();
console.log('Query string:', query); // Example: ?id=123

_getStorage

Handles local/session storage actions like GET, SET, REMOVE, CLEAR.

const data = _getStorage({ action: 'GET', type: 'local', key: 'user' });

_isMobile

Detects if the current device is a mobile device.

const mobile = _isMobile();

_pasteText

Retrieves and returns the current text content from the clipboard, using modern APIs with a fallback for older browsers.

const text = await _pasteText();
if (text) {
  console.log("Pasted text:", text);
}

_setCookie

Sets a cookie with a name, value, and expiry (in days).

_setCookie('auth_token', 'abc123', 7);

_bytesToSize

Converts byte size into a human-readable format.

const size = _bytesToSize(1024); // "1 KB"

_capitalize

Capitalizes the first character of a string.

const name = _capitalize("john"); // "John"

_truncateText

Truncates text to a specified character limit and adds ellipsis if truncated.

_truncateText('This is a long text example', 10);
// Returns: "This is a…"

_countWords

Counts the number of words in a string by trimming whitespace and splitting by spaces.

const wordCount = _countWords('  Hello world! How are you?  '); // 5

_decodeURI

Decodes an encoded URI component back to its original readable string format.

const decoded = _decodeURI('hello%20world%402024'); // 'hello world@2024'

_encodeURI

Encodes a URI component by escaping special characters to make it safe for use in URLs.

const encoded = _encodeURI('hello world@2024'); // 'hello%20world%402024'

_escapeRegExpMatch

Escapes special characters for regex matching.

const escaped = _escapeRegExpMatch('a+b*c');

_isExactMatch

Checks if a string contains an exact word match using regex.

const match = _isExactMatch('The quick brown fox', 'quick');

_parseJSON

Safely parses a JSON string into an object.

const obj = _parseJSON(jsonString);

_stringifyJSON

Safely converts an object to a JSON string.

const str = _stringifyJSON(obj);

_toCamelCase

Converts kebab-case or snake_case to camelCase.

_toCamelCase('hello_world'); // helloWorld

_calculateTimeDifference

Returns difference between two dates in readable format.

_calculateTimeDifference(start, end); // "1d 2h 3m 4s"

_dateFormat

Formats a date using Moment.js with the specified format.

const formatted = _dateFormat(new Date(), 'YYYY-MM-DD');

_dateTransformer

Recursively formats all dates in an object or array.

const result = _dateTransformer(data);

_formatDate

Formats a date based on a custom pattern.

_formatDate(new Date(), 'YMD'); // e.g., "Apr 9, 2025"

_formatInternationalDate

Formats a date according to locale, timezone, and preset or custom format.

const formatted = _formatInternationalDate('2024-07-09T10:00:00Z', {
  country: 'IN',
  timezone: 'Asia/Kolkata',
  format: 'DATETIME_SHORT',
}); // "9/7/2024, 3:30 pm"

_getFinancialYear

Returns the current financial year based on today's date.

const fy = _getFinancialYear();

_getStartStopTime

Returns the start and end datetime of a given date's month in specified format.

const { startTime, stopTime } = _getStartStopTime(new Date());

_convertLocalToUTC

Converts a local date/time (your system timezone) into a UTC ISO timestamp.

const utc = _convertLocalToUTC("2022-11-24T17:45:50");

console.log(utc);
// "2022-11-24T12:15:50.000Z"

_convertUTCToLocal

Converts a UTC timestamp (with or without Z) into a local Date object based on the system's timezone.

const local = _convertUTCToLocal("2022-11-24T12:15:50Z");

console.log(local);
// Mon Nov 24 2022 17:45:50 GMT+0530 (India Standard Time)

_globalizeDateTime

Converts a date/time to a specific time zone and format.

const localized = _globalizeDateTime('2024-07-09T12:00:00', {
  timeZone: 'Asia/Kolkata',
  format: 'yyyy-MM-dd HH:mm',
}); // "2024-07-09 17:30"

_isLeapYear

Determines whether a given year is a leap year based on calendar rules.

const isLeap = _isLeapYear(2024); // true

_isWeekend

Checks if a given date falls on a weekend (Saturday or Sunday).

const weekend = _isWeekend(new Date('2025-06-08')); // true (Sunday)

_calPercentage

Calculates the percentage of a value relative to total.

_calPercentage(40, 200); // 20

_convertToCurrency

Converts a number to a formatted currency string.

const price = _convertToCurrency(2500, 'INR');

_getPriceAfterTax

Adds tax to a given price.

_getPriceAfterTax(100, 18); // 118

_thousandSeparator

Formats a number with thousand separators and fixed decimal precision.

const formatted = _thousandSeparator(1234567.89);

_alert

Shows a customizable alert modal.

await _alert({ title: "Test", text: "Data save successfully!" });

_asyncDebounce

Debounces an async function call.

const debouncedFn = _asyncDebounce(fetchData, 500);
debouncedFn();

_confirm

Shows a customizable confirm modal.

const confirmed = await _confirm({
  title: "Are you sure?",
  text: "Do you really want to delete this item?",
  icon: "warning",
  confirmButtonText: "Yes, delete it",
  cancelButtonText: "No, cancel",
});

if (confirmed) {
  // proceed with delete
} else {
  // cancelled
}

_dynamicReducer

Creates a simple dynamic reducer using generic action handler logic.

const reducer = _dynamicReducer(initialState);

_UUID / _generateUUID

Generates a unique UUID string using the browser's crypto API.

const id = _UUID();
console.log(id); // e.g., "3b12f1df-5232-4e6b-8f36-3a4e5f7f8b84"

_genericReducer

A generic reducer accepting predefined handlers for each action type.

const reducer = _genericReducer(initialState, customActions);

_handleApi

Wraps an API call with success and error handling, executing the appropriate callback based on the result.

_handleApi(
  getDetails({ name: 'sia' }),
  (res) => console.log(res), 
  (err) => console.error(err)
);

_handleChildrenMenu

Recursively sets assigned state and permissions of child nodes.

_handleChildrenMenu(menuList, parentKey, checked);

_handleParentNode

Recursively updates parent permissions based on child permissions.

_handleParentNode(menuList, menuId, permissionKey);

_handleParentsMenu

Recursively updates parent menu's assigned state and permissions based on children.

_handleParentsMenu(menuList, menuId);

_handleSafe

Executes a synchronous or asynchronous action safely, handling errors and an optional finally block without breaking the application.

await _handleSafe(
  async () => {
    await someAsyncTask();
  },
  (error) => {
    console.error('Error occurred:', error);
  },
  () => {
    console.log('Cleanup after execution');
  }
);

_isNotEmpty

Checks if a given value is not empty — returns false for empty arrays, empty objects, and falsy values like null, undefined, false, or ''.

const isEmpty = _isNotEmpty([]);

_log

Logs a styled message to the console with a specified log level (log, info, warn, error).

_log("UserService", "Fetching user details...", "info");

_sleep

Creates a delay for a given time using Promise.

await _sleep(1000); // Wait 1 second

_throwError

Throws an error with an optional context object and logs it to the console.

_throwError("Something went wrong");

Approved by : NPM Community

License : MIT © 2022–2024