2.2.0 • Published 7 months ago
@aditya2337/drive-client v2.2.0
Drive Backend API Types
TypeScript type definitions for the Drive Backend API. This package provides type safety when interacting with the Drive Backend API from frontend applications.
Installation
# From npm (if published)
npm install @aditya2337/drive-client
# From local package
npm install /path/to/drive-client-1.0.0.tgz
Usage in React Native
import {
UserModel,
LoginRequest,
ApiResponse,
LoginResponse,
UsersService
} from '@aditya2337/drive-client';
// Manual API call with types
async function loginUser(credentials: LoginRequest): Promise<ApiResponse<LoginResponse>> {
const response = await fetch('http://your-api.com/api/users/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(credentials),
});
return response.json();
}
// Or use the generated service
async function loginWithService(credentials: LoginRequest): Promise<UserModel> {
const result = await UsersService.login(credentials);
return result.user;
}
// Example component
function LoginScreen() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const handleLogin = async () => {
try {
// Using direct API call
const result = await loginUser({ email, password });
if (result.error) {
console.error(result.error);
} else {
// Handle successful login
console.log(result.data); // This will be correctly typed as LoginResponse
}
// Or using the service
const user = await loginWithService({ email, password });
console.log(user); // This will be correctly typed as UserModel
} catch (error) {
console.error('Login failed:', error);
}
};
// Rest of component...
}
Available Types
The following types are available:
Core API Types
ApiResponse<T>
: Generic API response wrapperUserModel
: User data modelLoginRequest
: Login credentialsLoginResponse
: Login response with token and user dataRegisterResponse
: Registration responseProfileResponse
: User profile responseAuthTokens
: Authentication token information
Generated API Services
UsersService
: For user registration and authenticationProfileService
: For user profile managementAuthService
: For OAuth operations
Updating Types
When the backend API changes, regenerate the types by running:
npm run generate-types
Then republish the package:
npm run publish-manual