lupine.web
Version:
lupine.web is a extremely fast, small size and lightweight frontend framework, using React TSX syntax.
41 lines (39 loc) • 1.08 kB
text/typescript
/**
* Sample:
* const domUniqueId = uniqueIdGenerator('lj');
* const id1 = domUniqueId();
* const id2 = domUniqueId();
* @param preKey
* @returns A function to generate Unique Ids
*/
// export function uniqueIdGenerator2(preKey: string) {
// let count = 0;
// let diff = '';
// return function (reset = false): string {
// if (reset) {
// count = 0;
// diff = '';
// }
// if (count > 9999999999999999) {
// count = 0;
// diff = Math.round(new Date().getTime() / 1000).toString(36) + '-';
// }
// count++;
// return `${preKey}${diff}${count.toString(36)}`;
// };
// }
export function uniqueIdGenerator(preKey: string) {
let count = 0;
const baseTime = Math.round(Date.now() / 1000);
let lastKey = '';
return function (): string {
const key = Math.round(Date.now() / 1000 - baseTime).toString(36);
if (key !== lastKey) {
count = 0;
lastKey = key;
} else {
count++;
}
return `${preKey}${lastKey}${count.toString(36)}`;
};
}