@typia/utils
Utility functions and converters for the typia ecosystem.
Automatically installed as a dependency of typia.
| Module | Description |
|---|---|
HttpLlm |
Create LLM controllers from OpenAPI documents and execute function calls |
HttpMigration |
HTTP migration utilities |
HttpError |
HTTP error type |
OpenApiConverter |
Convert between OpenAPI versions |
OpenApiTypeChecker |
Type checker for OpenAPI documents |
LlmSchemaConverter |
Convert JSON Schema to LLM schema |
LlmTypeChecker |
Type checker for LLM schemas |
LlmJson |
Parse lenient JSON and format validation errors for LLM-friendly feedback |
LlmJsonParse lenient JSON and format validation errors for LLM-friendly feedback:
import { IValidation } from "@typia/interface";
import { LlmJson } from "@typia/utils";
const validation: IValidation<unknown> = func.validate(llmArguments);
if (validation.success === false) {
console.log(LlmJson.stringify(validation));
}
Output:
{
"x": "not a number", // ❌ expected: number
"y": 5
}
HttpLlmCreate LLM controllers from OpenAPI documents:
import { IHttpLlmController } from "@typia/interface";
import { HttpLlm } from "@typia/utils";
// any OpenAPI version (Swagger 2.0, OpenAPI 3.0/3.1) is accepted
const controller: IHttpLlmController = HttpLlm.controller({
name: "shopping",
document: await fetch("https://shopping.example.com/swagger.json").then(r => r.json()),
connection: {
host: "https://shopping.example.com",
headers: { Authorization: "Bearer ..." },
},
});
// use with @typia/langchain, @typia/mcp, or @typia/vercel
toLangChainTools({ controllers: [controller] });
registerMcpControllers({ server, controllers: [controller] });
toVercelTools({ controllers: [controller] });
OpenApiConverter is used internally to normalize any OpenAPI version into a unified format. You can also use it directly:
import { OpenApi, OpenApiV3 } from "@typia/interface";
import { OpenApiConverter } from "@typia/utils";
const emended: OpenApi.IDocument = OpenApiConverter.upgradeDocument(swagger2doc); // Swagger 2.0 → OpenApi
const downgraded: OpenApiV3.IDocument = OpenApiConverter.downgradeDocument(emended, "3.0"); // → OpenAPI 3.0