Unique identifier validation including UUIDs, ObjectIDs, JWTs, and other ID formats. These scalars provide validation for various identifier systems commonly used in modern applications.
Validates Universally Unique Identifier (UUID) format.
/**
* GraphQL scalar for UUID validation
* Accepts standard UUID format (8-4-4-4-12 hexadecimal digits)
* Supports versions 1, 3, 4, and 5
*/
const GraphQLUUID: GraphQLScalarType;Example Values:
"550e8400-e29b-41d4-a716-446655440000""6ba7b810-9dad-11d1-80b4-00c04fd430c8""f47ac10b-58cc-4372-a567-0e02b2c3d479"Validates Globally Unique Identifier (GUID) format - alias for UUID.
/**
* GraphQL scalar for GUID validation
* Alias for UUID, accepts the same format
*/
const GraphQLGUID: GraphQLScalarType;Example Values:
"550e8400-e29b-41d4-a716-446655440000"Validates MongoDB ObjectID format.
/**
* GraphQL scalar for MongoDB ObjectID validation
* Accepts 24-character hexadecimal string
*/
const GraphQLObjectID: GraphQLScalarType;Example Values:
"507f1f77bcf86cd799439011""507f191e810c19729de860ea""5f8f4e2c1b2c3d4e5f6g7h8i"Validates Collision-resistant Unique Identifier (CUID) format.
/**
* GraphQL scalar for CUID validation
* Accepts collision-resistant unique identifiers
* Format: c[timestamp][counter][fingerprint][random]
*/
const GraphQLCuid: GraphQLScalarType;Example Values:
"cjld2cjxh0000qzrmn831i7rn""cjld2cyuq0000t3rmniod1foy""cjld2d0180000w3rmkfp2yxed"Validates JSON Web Token (JWT) format.
/**
* GraphQL scalar for JWT validation
* Accepts JWT format: header.payload.signature (base64url encoded)
*/
const GraphQLJWT: GraphQLScalarType;Example Values:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"Validates Decentralized Identifier (DID) format.
/**
* GraphQL scalar for DID validation
* Accepts W3C Decentralized Identifier format
* Format: did:method:method-specific-id
*/
const GraphQLDID: GraphQLScalarType;Example Values:
"did:example:123456789abcdefghi""did:web:example.com""did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"import {
GraphQLUUID,
GraphQLObjectID,
GraphQLJWT,
GraphQLCuid
} from "graphql-scalars";
// In a GraphQL schema
const UserType = new GraphQLObjectType({
name: "User",
fields: {
id: { type: GraphQLUUID },
mongoId: { type: GraphQLObjectID },
sessionToken: { type: GraphQLJWT },
correlationId: { type: GraphQLCuid },
},
});
// Using with type definitions
const typeDefs = `
scalar UUID
scalar ObjectID
scalar JWT
scalar Cuid
type User {
id: UUID
mongoId: ObjectID
sessionToken: JWT
correlationId: Cuid
}
type Query {
user(id: UUID!): User
userByObjectId(mongoId: ObjectID!): User
}
type Mutation {
authenticate(token: JWT!): AuthResult
}
`;GraphQL Operations:
# Query using UUID
query GetUser($userId: UUID!) {
user(id: $userId) {
id
name
email
}
}
# Mutation with JWT
mutation Authenticate($token: JWT!) {
authenticate(token: $token) {
success
user {
id
name
}
}
}Variables:
{
"userId": "550e8400-e29b-41d4-a716-446655440000",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.Rq8IxqeX7eA6GdeE8bAr3JLprgfWfDKkjuQi7lqgaQ"
}Each identifier scalar performs format-specific validation:
// String constants for schema building
const UUID: string; // "scalar UUID"
const GUID: string; // "scalar GUID"
const ObjectID: string; // "scalar ObjectID"
const Cuid: string; // "scalar Cuid"
const JWT: string; // "scalar JWT"
const DID: string; // "scalar DID"// Mock data generators for testing
const UUIDMock: () => string;
const GUIDMock: () => string;
const ObjectIDMock: () => string;
const CuidMock: () => string;
const JWTMock: () => string;
const DIDMock: () => string;UUIDs are ideal for:
ObjectIDs are perfect for:
JWTs are commonly used for:
CUIDs excel at:
DIDs are used for: