@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
79 lines • 2.02 kB
TypeScript
/**
* @file uuid.type.ts
* @module base/uuid
*
* @description
* Define o tipo UUID usado em toda a aplicação para identificadores únicos.
*
* @remarks
* UUID v4 (RFC 4122) é o padrão adotado pela API Quarkus de Controladores.
* O formato esperado segue o padrão: `xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`
* onde x é qualquer dígito hexadecimal e y é 8, 9, A ou B.
*
* @example
* ```typescript
* import { UUID } from "@anpdgovbr/shared-types"
*
* const id: UUID = "550e8400-e29b-41d4-a716-446655440000"
* ```
*
* @public
* @since 0.2.0
*/
/**
* Representa um identificador único universal (UUID v4).
*
* @remarks
* - Formato: string com 36 caracteres (incluindo hífens)
* - Padrão regex: `^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$`
* - Geração: usar `crypto.randomUUID()` no Node.js ou navegadores modernos
*
* @example
* ```typescript
* const novoId: UUID = crypto.randomUUID()
* ```
*
* @public
*/
export type UUID = string;
/**
* Regex pattern para validação de UUID v4.
*
* @remarks
* Valida o formato exato de um UUID versão 4 conforme RFC 4122.
*
* @public
*/
export declare const UUID_V4_PATTERN: RegExp;
/**
* Type guard para verificar se uma string é um UUID v4 válido.
*
* @param value - Valor a ser verificado
* @returns `true` se o valor for um UUID v4 válido, caso contrário `false`
*
* @example
* ```typescript
* const id = "550e8400-e29b-41d4-a716-446655440000"
* if (isUUID(id)) {
* console.log("UUID válido")
* }
* ```
*
* @public
*/
export declare function isUUID(value: unknown): value is UUID;
/**
* Valida se uma string é um UUID v4 válido e lança erro caso não seja.
*
* @param value - Valor a ser validado
* @throws {Error} Se o valor não for um UUID v4 válido
*
* @example
* ```typescript
* assertUUID("550e8400-e29b-41d4-a716-446655440000")
* ```
*
* @public
*/
export declare function assertUUID(value: unknown): asserts value is UUID;
//# sourceMappingURL=uuid.type.d.ts.map