Client
Client
OpenAPI-based API client for the UCD API
Client
The @ucdjs/client package provides a type-safe API client for interacting with the UCD.js API. It offers a clean, resource-based interface for accessing Unicode Character Database files, version information, and configuration data.
Getting Started
Initialization
Create a client instance using createUCDClient(). The client is built on top of the OpenAPI specification, ensuring full type safety and accurate TypeScript inference.
import { createUCDClient } from "@ucdjs/client";
// Initialize the client
const client = await createUCDClient("https://api.ucdjs.dev");Usage
The client uses a safe error handling pattern that never throws exceptions. You always receive an object containing either data or error.
// Fetch available Unicode versions
const { data: versions, error } = await client.versions.list();
if (error) {
console.error("Failed to fetch versions:", error.message);
} else {
console.log("Available versions:", versions);
}Resources
The client provides four primary resource namespaces. You access them as properties on the instantiated client object.
Prop
Type
Examples
const { data: fileContent, error } = await client.files.get("16.0.0/ucd/UnicodeData.txt");
if (error) {
console.error("Failed to fetch file:", error.message);
return;
}
console.log("File content:", fileContent);// List all versions
const { data: versions, error } = await client.versions.list();
if (error) {
console.error("Failed to fetch versions:", error.message);
return;
}
// Get file tree for a specific Unicode version
const { data: fileTree } = await client.versions.getFileTree("16.0.0");
console.log("File tree:", fileTree);const { data: config, error } = await client.config.get();
if (error) {
console.error("Failed to fetch config:", error.message);
return;
}
console.log("API Config:", config);const { data: manifest, error } = await client.manifest.get("16.0.0");
if (error) {
console.error("Failed to fetch manifest:", error.message);
return;
}
console.log("Expected files for 16.0.0:", manifest.files);