@gadagi/types
v1.0.2
Published
Shared TypeScript types for adi micro-frontends
Maintainers
Readme
Gadagi Types - Shared Type Definitions
Shared TypeScript type definitions for the Gadagi platform micro-frontend architecture.
Overview
This package contains common TypeScript interfaces and types used across all Gadagi micro-frontends, ensuring type consistency and reducing duplication.
Installation
npm install @gadagi/typesAvailable Types
User Types
interface User {
id: string;
email: string;
firstName: string;
lastName: string;
avatar?: string;
preferences: UserPreferences;
}
interface UserPreferences {
theme: 'light' | 'dark';
language: string;
timezone: string;
notifications: NotificationSettings;
}Authentication Types
interface AuthState {
isAuthenticated: boolean;
isLoading: boolean;
user: User | null;
error: string | null;
}
interface LoginCredentials {
email: string;
password: string;
rememberMe?: boolean;
}
interface AuthResponse {
user: User;
token: string;
refreshToken: string;
}Navigation Types
interface NavItem {
id: string;
label: string;
path: string;
icon?: React.ReactNode;
badge?: number;
children?: NavItem[];
}API Types
interface ApiResponse<T> {
data: T;
success: boolean;
message?: string;
errors?: string[];
}
interface PaginationMeta {
page: number;
limit: number;
total: number;
totalPages: number;
}Usage
import { User, AuthState, NavItem, ApiResponse } from '@gadagi/types';
// Component props
interface UserProfileProps {
user: User;
onUpdate: (user: Partial<User>) => void;
}
// Hook return types
const useAuth = (): AuthState => {
// Implementation
};
// Navigation configuration
const navigationItems: NavItem[] = [
{
id: 'dashboard',
label: 'Dashboard',
path: '/dashboard'
}
];
// API response handling
const handleUserResponse = (response: ApiResponse<User>) => {
if (response.success) {
console.log(response.data);
}
};Type Safety Benefits
- Consistency: Same types across all micro-frontends
- IntelliSense: Full autocomplete and type checking
- Refactoring: Safe cross-project refactoring
- Documentation: Self-documenting code with clear interfaces
Versioning
This package follows semantic versioning:
- Major: Breaking changes to existing types
- Minor: New types or optional properties added
- Patch: Bug fixes or documentation updates
Development
# Install dependencies
npm install
# Build the package
npm run build
# Watch for changes during development
npm run devPublishing
This package is configured to publish to the public npm registry.
# Build and publish
npm run publishContributing
When adding new types:
- Consider if they're truly shared across multiple apps
- Use clear, descriptive names
- Add JSDoc comments for complex interfaces
- Update this README
- Increment version appropriately
Dependencies
- TypeScript: 5.0.0+
- No runtime dependencies - types only
License
MIT © Gadagi Team
Repository
https://github.com/gavimg/adi-types
