Amigo JS offers developers a powerful and easy-to-use toolset. With its clean, modular and scalable code structure, it accelerates development processes and reduces code complexity. With a wide range of functions, it offers ready-made methods for solving common problems.
npm install amigo-js
yarn add amigo-js
Return debounced callback after param delay
debounce(callBack: Function, delay: number): Function
const getSearchSuggestion = () => {
/* send request ...*/
};
const debouncedSearchRequest = debounce(getSearchSuggestion, 1000); // type of delay is ms
debouncedSearchRequest();
Await the any async method
await sleep(time): Promise<void>
const startLoader = async () => {
// ...
await sleep(500); // ms
// ...
};
Clone data from any data (disconnect any data binding)
deepClone(val: any): typeof val
const clonedVal = deepClone({ name: "test" });
expect(clonedVal).not.toBe({ name: "test" }); // reference equal
expect(clonedVal).toEqual(clonedVal); // soft equal
Checks the equality of two values.
isEqual(valOne: any, valTwo: any): boolean
isEqual(10, 10); // true
isEqual("test", 1); // false
isEqual(null, 1); // false
isEqual(null, NaN); // false
isEqual(NaN, NaN); // false
isEqual({ name: "john" }, { name: "john" }); // true
isEqual(["john"], ["john"]); // true
isEqual([{ key: "value" }], [{ key: "value" }]); // true
Checks the not equality of two values.
isNotEqual(valOne: any, valTwo: any): boolean
isNotEqual(10, 10); // false
isNotEqual("test", 1); // true
isNotEqual({ name: "john" }, { name: "john" }); // false
isNotEqual(["john"], ["john"]); // true
isNotEqual([{ key: "value" }], [{ key: "value" }]); // false
Controls the ordering of two values relative to each other
isBefore(numberOne: number, numberTwo: number): boolean
isBefore(10, 10); // false
isBefore(-1, -2); // false
isBefore(new Date("01-01-2024").getTime(), new Date("01-01-2025").getTime()); // true
Controls the ordering of two values relative to each other
isAfter(numberOne: number, numberTwo: number): boolean
isAfter(10, 10); // false
isAfter(-1, -2); // true
isAfter(new Date("01-01-2024").getTime(), new Date("01-01-2025").getTime()); // false
Controls the ordering of two date values relative to each other
isDateBefore(dateOne: Date, dateTwo: Date): boolean
isDateBefore(new Date(), new Date("2025-03-20")); // true
isDateBefore(new Date(), new Date("2022-03-20")); // false
Controls the ordering of two date values relative to each other
isDateAfter(dateOne: Date, dateTwo: Date): boolean
isDateAfter(new Date(), new Date("2025-03-20")); // false
isDateAfter(new Date(), new Date("2022-03-20")); // true
Check if val is an object
isObject(val: any): boolean
isObject([]); // true
isObject(null); // false
isObject(undefined); // false
isObject(NaN); // false
isObject({}); //
isObject(new Date()); // true
Check if val is an date
isDate(val: any): boolean
isDate(Date); // false
isDate(null); // false
isDate("12-22-2023"); // false
isDate(new Date()); // true
Check if val is true or false (boolean)
isBoolean(val: any): boolean
isBoolean(null); // false
isBoolean(false); // true
isBoolean(true); // true
isBoolean(Boolean); // false
isBoolean(0); // false
Check if val is an array
isArray(val: any): boolean
isArray(null); // false
isArray({}); // false
isArray([]); // true
isArray(new Array([])); // true
Check if val is an number
isNumber(val: any): boolean
isNumber(null); // false
isNumber(NaN); // true
isNumber(1); // true
isNumber("1"); // false
Check if val is an function
isFunction(val: any): boolean
isFunction(NaN); // false
isFunction(() => {}); // true
created by Ahmet ilhan