forked from TheAlgorithms/JavaScript
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGenerateGUID.js
More file actions
Latest commit
18 lines (16 loc) · 707 Bytes
/
Copy pathGenerateGUID.js
File metadata and controls
18 lines (16 loc) · 707 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
Generates a UUID/GUID in Node.Js.
The script uses `Math.random` in combination with the timestamp for better randomness.
The function generate an RFC4122 (https://www.ietf.org/rfc/rfc4122.txt) version 4 UUID/GUID
*/
exportconstGuid=()=>{
constpattern='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
letcurrentDateMilliseconds=newDate().getTime()
returnpattern.replace(/[xy]/g,currentChar=>{
constrandomChar=(currentDateMilliseconds+Math.random()*16)%16|0
currentDateMilliseconds=Math.floor(currentDateMilliseconds/16)
return(currentChar==='x' ? randomChar : (randomChar&0x7|0x8)).toString(16)
})
}
// > Guid()
// 'edc848db-3478-1760-8b55-7986003d895f'