1.1.0 • Published 9 months ago
@septem/tool v1.1.0
@septem/tool
A JavaScript utility library similar to lodash, providing various useful utility functions.
Installation
npm install @septem/tool
# or
yarn add @septem/toolUsage
Import the entire library
// ES modules
import tool from '@septem/tool';
tool.isEqual([1, 2, 3], [1, 2, 3]); // => true
// CommonJS
const tool = require('@septem/tool');
tool.isEqual([1, 2, 3], [1, 2, 3]); // => trueImport individual functions
// ES modules
import { isEqual } from '@septem/tool';
isEqual([1, 2, 3], [1, 2, 3]); // => true
// CommonJS
const { isEqual } = require('@septem/tool');
isEqual([1, 2, 3], [1, 2, 3]); // => trueAPI Documentation
isEqual(value, other)
Deep comparison to check if two values are equal.
Parameters
value(*): The first value to compareother(*): The second value to compare
Returns
boolean: Returns true if the values are equal, otherwise false
Example
isEqual([1, 2, 3], [1, 2, 3]);
// => true
isEqual({ 'a': 1, 'b': 2 }, { 'b': 2, 'a': 1 });
// => true
isEqual('a', 'a');
// => true
isEqual('a', Object('a'));
// => falsedeepClone(value)
Deep clone a value, creating a new value that is equal to the original but with different references.
Parameters
value(*): The value to clone
Returns
*: The cloned value
Example
const objects = [{ 'a': 1 }, { 'b': 2 }];
const deep = deepClone(objects);
console.log(deep[0] === objects[0]);
// => false
const obj = { a: 1, b: { c: 2 } };
const clone = deepClone(obj);
obj.b.c = 3;
console.log(clone.b.c);
// => 2debounce(func, wait, options)
Creates a debounced function that delays invoking func until after wait milliseconds have elapsed since the last time the debounced function was invoked.
Parameters
func(Function): The function to debouncewait(number): The number of milliseconds to delayoptions(Object): The options objectleading(boolean): Specify invoking on the leading edge of the timeout, defaults to falsetrailing(boolean): Specify invoking on the trailing edge of the timeout, defaults to true
Returns
Function: Returns the new debounced function with the following methods:cancel(): Cancels the debounced function callflush(): Immediately invokes the function
Example
// Avoid updating layout during window resize too frequently
window.addEventListener('resize', debounce(calculateLayout, 150));
// Send request only after user stops typing
element.addEventListener('input', debounce(sendRequest, 300));
// Use leading option to invoke at the beginning of the timeout
const clickHandler = debounce(handleClick, 300, { leading: true });
// Cancel a debounced function call
const debouncedFunc = debounce(func, 1000);
debouncedFunc();
// Cancel the call
debouncedFunc.cancel();Development
Install dependencies
npm installRun tests
npm testBuild
npm run buildGenerate documentation
npm run docsLicense
MIT