You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
587 B
20 lines
587 B
|
|
export function uuid_v4() {
|
|
// @ts-ignore
|
|
return ([1e7] + - 1e3 + - 4e3 + - 8e3 + - 1e11).replace(/[018]/g, c =>
|
|
// tslint:disable-next-line:no-bitwise
|
|
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
|
|
);
|
|
}
|
|
|
|
export function debounce(func: (...args: any[]) => any, timeout?: number) {
|
|
let timer: number | undefined;
|
|
return (...args: any[]) => {
|
|
const next = () => func(...args);
|
|
if (timer) {
|
|
clearTimeout(timer);
|
|
}
|
|
timer = setTimeout(next, timeout > 0 ? timeout : 300);
|
|
};
|
|
}
|