GUID
The Guid class provides robust GUID (Globally Unique Identifier) creation and manipulation utilities for JavaScript/TypeScript applications.
Creating GUIDs
Section titled “Creating GUIDs”New GUID
Section titled “New GUID”import { Guid } from '@cratis/fundamentals';
// Create a new random GUIDconst newId = Guid.create();console.log(newId.toString()); // "550e8400-e29b-41d4-a716-446655440000"From String
Section titled “From String”import { Guid } from '@cratis/fundamentals';
// Create from existing stringconst existingId = new Guid('550e8400-e29b-41d4-a716-446655440000');From Uint8Array
Section titled “From Uint8Array”import { Guid } from '@cratis/fundamentals';
// Create from byte arrayconst bytes = new Uint8Array([0x55, 0x0e, 0x84, 0x00, 0xe2, 0x9b, 0x41, 0xd4, 0xa7, 0x16, 0x44, 0x66, 0x55, 0x44, 0x00, 0x00]);const guidFromBytes = new Guid(bytes);Empty GUID
Section titled “Empty GUID”import { Guid } from '@cratis/fundamentals';
// Get empty GUID (all zeros)const emptyGuid = Guid.empty;console.log(emptyGuid.toString()); // "00000000-0000-0000-0000-000000000000"String Conversion
Section titled “String Conversion”import { Guid } from '@cratis/fundamentals';
const guid = Guid.create();
// Convert to string (default format)const str = guid.toString();
// Check if string is valid GUID formatconst isValid = Guid.isGuid('550e8400-e29b-41d4-a716-446655440000'); // trueEquality
Section titled “Equality”The Guid class implements proper equality comparison:
import { Guid } from '@cratis/fundamentals';
const guid1 = new Guid('550e8400-e29b-41d4-a716-446655440000');const guid2 = new Guid('550e8400-e29b-41d4-a716-446655440000');const guid3 = Guid.create();
console.log(guid1.equals(guid2)); // trueconsole.log(guid1.equals(guid3)); // falseUse Cases
Section titled “Use Cases”GUIDs are commonly used for:
- Entity Identifiers: Unique identifiers for domain objects
- Event IDs: Tracking events in event-driven architectures
- Session Tokens: Temporary unique identifiers
- API Keys: Unique identifiers for external services
The GUID implementation ensures compatibility with .NET GUID formats, making it ideal for full-stack applications using both the frontend and backend Fundamentals packages.