Skip to content

Instantly share code, notes, and snippets.

@erikvullings
Created July 30, 2018 10:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save erikvullings/b71a0be49e5e79945805bd209e22c7d2 to your computer and use it in GitHub Desktop.
Save erikvullings/b71a0be49e5e79945805bd209e22c7d2 to your computer and use it in GitHub Desktop.
Create a new GUID or UUID in TypeScript
/**
* Create a GUID
* @see https://stackoverflow.com/a/2117523/319711
*
* @returns RFC4122 version 4 compliant GUID
*/
export const uuid4 = () => {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
// tslint:disable-next-line:no-bitwise
const r = (Math.random() * 16) | 0;
// tslint:disable-next-line:no-bitwise
const v = c === 'x' ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment