use-fns v1.0.27
use-fns
Some utility functions prefixed with use
Install
$ npm i use-fnsUsage
import fns from "use-fns";API
useTypeOf
Determine the type of variable
declare function useTypeOf(v: any): string;import { useTypeOf } from 'use-fns'
console.log(useTypeOf('abc')) // 'string'
console.log(useTypeOf(123)) // 'number'
console.log(useTypeOf(true)) // 'boolean'
console.log(useTypeOf(null)) // 'null'
console.log(useTypeOf(undefined)) // 'undefined'
console.log(useTypeOf(Symbol())) // 'symbol'
console.log(useTypeOf(BigInt())) // 'bigint'
console.log(useTypeOf([])) // 'array'
console.log(useTypeOf({})) // 'object'
console.log(useTypeOf(/.+/)) // 'regexp'
console.log(useTypeOf(new Date())) // 'date'
...useDebounce
Calling a function multiple times only takes the last one as the result
declare function useDebounce(cb: Function, wait: number = 500): Function;import { useDebounce } from "use-fns";
const cb = () => console.log("useDebounce");
const newCb = useDebounce(cb, 1000);
for (let i = 0; i < 10; i++) newCb(); // only call once after one seconduseThrottle,
Call the function at regular intervals
declare function useThrottle(cb: Function, wait: number = 500): Function;import { useThrottle } from "use-fns";
const cb = () => console.log("useDebounce");
const newCb = useThrottle(cb, 1000);
for (let i = 0; i < 10; i++) newCb(); // call the function per seconduseHideMobile
Desensitization of mobile phone number(not strict)
declare function useHideMobile(s: string): string;import { useHideMobile } from "use-fns";
const phoneNumber = useHideMobile("12345678911"); // 1*********1useLaunchFullscreen
Launch full screen
declare function useLaunchFullscreen<T extends Element>(ele: T): void;import { useLaunchFullscreen } from "use-fns";
useLaunchFullscreen(document.body);useExitFullscreen
Exit full screen
declare function useExitFullscreen(): void;import { useExitFullscreen } from "use-fns";
useExitFullscreen();useTurnCase
Convert string case
declare function useTurnCase(str: string, type: number): void;import { useTurnCase } from "use-fns";
const upper = useTurnCase("aBc", 1); // ABC
const lower = useTurnCase("aBc", 2); // abc
const capital = useTurnCase("aBc", 3); // ABc
const original = useTurnCase("aBc", 4); // aBcuseSearchParams
Get url search params
declare function useSearchParams(): Record<string, string>;import { useSearchParams } from "use-fns";
// if location.search = '?a=1&b=2'
const params = useSearchParams(); // {a: 1,b: 2}useSysType
Get current terminal type
declare function useSysType(): void;import { useSysType } from "use-fns";
const sys = useSysType(); // 'ios' | 'android' | ''useUniqueArrObj
Array objects are deduplicated according to fields
declare function useUniqueArrObj<T extends Record<string, any>, U extends T[]>(
arr: U,
k: keyof T
): void;import { useUniqueArrObj } from "use-fns";
const uniqueArr = useUniqueArrObj(
[
{ name: "Joruno", age: 22 },
{ name: "hanchen", age: 22 },
{ name: "old man", age: 21 },
],
"age"
);
/**
* [
* {name: 'Joruno', age: 22},
* {name: 'old man', age: 21},
* ]
*/useScrollToTop
Scroll to top of page
declare function useScrollToTop(): void;import { useScrollToTop } from "use-fns";
useScrollToTop();useSmoothScroll
Scroll to element position
declare function useSmoothScroll(selector: string = "body"): void;import { useSmoothScroll } from "use-fns";
useSmoothScroll("#form");useUUID
Generate uuid
declare function useUUID(): void;import { useUUID } from "use-fns";
const uuid = useUUID(); // 'e728a1e4-dd9c-4e3f-a747-8ca67985e293'useMoneyFormat
Money format
declare function useMoneyFormat(): void;import { useMoneyFormat } from "use-fns";
const res = useMoneyFormat();useLocalCache
automatic serialization localStorage
declare function useLocalCache(): void;import { useLocalCache } from "use-fns";
const local = useLocalCache();
local.setItem("person", { name: "Joruno", age: 22 });
local.getItem("person");
local.removeItem("person");
local.clear();
local.key(0);
local.length();useSessionCache
automatic serialization sessionStorage
declare function useSessionCache(): void;import { useSessionCache } from "use-fns";
const session = useSessionCache();
session.setItem("person", { name: "Joruno", age: 22 });
session.getItem("person");
session.removeItem("person");
session.clear();
session.key(0);
session.length();useFuzzyQuery
Fuzz query
declare function useFuzzyQuery<T extends Record<string, any>, U extends T[]>(
list: U,
keyWord: string,
attr: keyof T
): void;import { useFuzzyQuery } from "use-fns";
useFuzzyQuery(
[
{ name: "Joruno", age: 22 },
{ name: "hanchen", age: 22 },
{ name: "old man", age: 21 },
],
"o",
"name"
);
/**
* [
* {name: 'Joruno', age: 22},
* {name: 'old man', age: 21},
* ]
*/useForeachTree
foreach all tree node
declare function useForeachTree<T extends Record<string, any>>(data: T[],cb: Function, childrenName:keyof T): void;import { useForeachTree } from "use-fns";
useForeachTree(
[
{
name: "Joruno",
age: 22,
children: [
{
name: "hanchen",
age: 22
},
{
name: "old man",
age: 21
}
]
}
],
console.log,
'children'
);
/**
*
* {
* name: 'Joruno',
* age: 22,
* children: [
* { name: 'hanchen', age: 22 },
* { name: 'old man', age: 21 }
* ]
* },
*
* { name: 'hanchen', age: 22 },
*
* { name: 'old man', age: 21 }
*
*/useCharacterCount
Get the number of characters in a string
declare function useCharacterCount(s: string, char: string): number;import { useCharacterCount } from "use-fns";
const count = useCharacterCount('Joruno','o') // 2useIsEmptyObj
Check if object is empty
declare function useIsEmptyObj<T extends Record<string, any>(obj: T): boolean;import { useIsEmptyObj } from "use-fns";
useIsEmptyObj({}) // true
useIsEmptyObj({a: 1}) // falseuseDelay
Wait for a while before calling function
declare function useDelay(ms: number): Promise<void>;import { useDelay } from "use-fns";
await useDelay(1000) // Wait for one seconduseDaysBetween
Get the day difference between two dates
declare function useDaysBetween(d1:number, d2: number): number;import { useDaysBetween } from "use-fns";
const timeStamp = Date.now()
useDaysBetween(timeStamp,timeStamp + 3600 * 1000 * 24 * 7) // 7useRedirect
Redirect to another URL
declare function useRedirect(url: string): string;import { useRedirect } from "use-fns";
useRedirect('https://github.com') // Redirect to githubuseTouchSupported
Check for touch support on your device
declare function useTouchSupported(): boolean;import { useTouchSupported } from "use-fns";
useTouchSupported() // true or falseuseInsertHTMLAfter
Insert HTML string after element
declare function useInsertHTMLAfter(html: string, el: Element): void;import { useInsertHTMLAfter } from "use-fns";
useInsertHTMLAfter('<div>useInsertHTMLAfter</div>',document.body)useShuffle
Shuffle array
declare function useShuffle(arr: any[]): any[];import { useShuffle } from "use-fns";
useShuffle([1,2]) // [1,2] or [2,1]useGetSelectedText
Get selected text on webpage
declare function useGetSelectedText(): string;import { useGetSelectedText } from "use-fns";
useGetSelectedText()useGetRandomBoolean
Get random boolean
declare function useGetRandomBoolean(): boolean;import { useGetRandomBoolean } from "use-fns";
useGetRandomBoolean() // true or falseuseSum
Calculate the sum of an array
declare function useSum(arr: any[]): number;import { useSum } from "use-fns";
useSum([]) // 0
useSum([1,2]) // 3
useSum([1,2,3]) // 6useAverage
Calculate the average of an array
declare function useAverage(arr: any[]): number;import { useAverage } from "use-fns";
useAverage([]) // 0
useAverage([1,2]) // 1.5
useAverage([1,2,3]) // 2useIsUrl
Determine if a string is a valid URL
declare function useIsUrl(arr: any[],opts: {readonly lenient?: boolean} = {lenient: false}): boolean;import { useIsUrl } from "use-fns";
useIsUrl('https://github.com') // true
useIsUrl('github.com') // false;
useIsUrl('github.com',{lenient: true}) // trueuseGithubUrlFromGit
Convert git address to github address
declare function useGithubUrlFromGit(url: string,opts: Record<string,any> = {}): string;import { useGithubUrlFromGit } from "use-fns";
useGithubUrlFromGit('git+https://github.com/Joruno-w/use-fns.git') // https://github.com/Joruno-w/use-fnsuseIsScoped
Check if a string is npm scoped
declare function useIsScoped(s: string): boolean;import { useIsScoped } from "use-fns";
useIsScoped('@joruno/use-fns') // true
useIsScoped('joruno/use-fns') // falseuseArrayMoveMutable
Swap two elements of an array (mutable)
declare function useArrayMoveMutable(arr: unknow[],fromIndex: number,toIndex: number): void;import { useArrayMoveMutable } from "use-fns";
useArrayMoveMutable([1,2,3],0,2) // [3,2,1]
useArrayMoveMutable([1,2,3],0,-2) // [2,1,3]useArrayMoveImmutable
Swap two elements of an array (immutable)
declare function useArrayMoveImmutable(arr: unknow[],fromIndex: number,toIndex: number): void;import { useArrayMoveImmutable } from "use-fns";
useArrayMoveImmutable([1,2,3],0,2) // [3,2,1]
useArrayMoveImmutable([1,2,3],0,-2) // [2,1,3]License
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago