@skyadmin/api-contracts
v1.0.3
Published
API contracts and types
Maintainers
Readme
@apis-lihuanyu/contracts
API contracts and TypeScript types for lihuanyu.com APIs, built with ts-rest and Zod.
Installation
npm install @apis-lihuanyu/contracts
# or
pnpm add @apis-lihuanyu/contracts
# or
yarn add @apis-lihuanyu/contractsUsage
Frontend Usage (React/Vue/Angular)
import { promptOptimizationContract, type GetPromptOptimizationHistoryQuery } from '@apis-lihuanyu/contracts';
import { initClient } from '@ts-rest/core';
// Create type-safe client
const client = initClient(promptOptimizationContract, {
baseUrl: 'https://apis.lihuanyu.com',
baseHeaders: {
'Authorization': 'Bearer your-token'
}
});
// Type-safe API calls
const response = await client.getPromptOptimizationHistory({
query: {
page: 1,
limit: 20,
modelCode: 'gpt-4'
}
});
// response is fully typed!
if (response.status === 200) {
console.log(response.body.items); // TypeScript knows the exact structure
}Backend Usage (NestJS)
import { promptOptimizationContract } from '@apis-lihuanyu/contracts';
import { TsRestHandler, tsRestHandler } from '@ts-rest/nest';
@Controller()
export class MyController {
@TsRestHandler(promptOptimizationContract.getPromptOptimizationHistory)
async getHistory() {
return tsRestHandler(
promptOptimizationContract.getPromptOptimizationHistory,
async ({ query }) => {
// query is fully typed based on the contract
return {
status: 200,
body: {
items: [],
meta: { /* ... */ }
}
};
}
);
}
}Available Contracts
Prompt Optimization
promptOptimizationContract.getPromptOptimizationHistory- Get paginated optimization historypromptOptimizationContract.getPromptOptimizationStatistics- Get statistics by period (day/week/month)
Types
All request/response types are exported:
import type {
GetPromptOptimizationHistoryQuery,
PromptOptimizationHistoryItem,
PaginatedPromptOptimizationHistory,
GetPromptOptimizationStatisticsQuery,
OptimizationStatistics,
OptimizationStatisticsItem
} from '@apis-lihuanyu/contracts';Features
- 🔒 Type Safety: Full TypeScript support with compile-time validation
- 📝 Runtime Validation: Zod schemas for request/response validation
- 🚀 Framework Agnostic: Works with any TypeScript frontend/backend
- 📚 Auto-completion: Full IntelliSense support
- 🔄 Consistent API: Shared contracts between frontend and backend
Development
# Install dependencies
pnpm install
# Build
pnpm run build
# Watch mode
pnpm run dev
# Clean
pnpm run cleanLicense
MIT
