@ritas-inc/hanaqueryapi-client
Version:
TypeScript client for HANA Query API with full type safety and error handling
228 lines (206 loc) • 5.41 kB
text/typescript
/**
* HANA Query API Client - Public Exports
*
* Main entry point for the HANA Query API client module.
* Exports all public types, classes, and utilities.
*/
// Import for default export
import { HanaQueryClient } from './hana-query-client.ts';
// ============================================================================
// Main Client Export
// ============================================================================
export {
HanaQueryClient,
RequestBuilder,
createClient,
createClientFromEnvironment
// defaultClient removed - requires explicit baseUrl configuration
} from './hana-query-client.ts';
// ============================================================================
// Type Definitions
// ============================================================================
// Base response types
export type {
BaseAPIResponse,
SuccessResponse,
ErrorResponse,
APIResponse,
ProblemDetails
} from './types.ts';
// Request types
export type {
SalesParams,
RequestOptions,
ClientConfig
} from './types.ts';
// Response types for each endpoint
export type {
HealthResponse,
HealthData,
DocsResponse,
DocsData,
ItemsStatusResponse,
ItemsStatusData,
ItemsStatusMetadata,
ItemGroupsResponse,
ItemGroupsData,
ItemGroupsMetadata,
SalesResponse,
SalesData,
SalesMetadata,
HierarchiesResponse,
HierarchiesData,
HierarchiesMetadata,
TreesResponse,
TreesData,
TreesMetadata,
PlansResponse,
PlansData,
PlansMetadata,
SinglePlanResponse,
SinglePlanData,
SinglePlanMetadata,
PlanProductsResponse,
PlanProductsData,
PlanProductsMetadata,
PlanWorkOrdersResponse,
PlanWorkOrdersData,
PlanWorkOrdersMetadata,
PlanSectorsSummaryResponse,
PlanSectorsSummaryData,
PlanSectorsSummaryMetadata,
AllPlansSectorsSummaryResponse,
AllPlansSectorsSummaryData,
AllPlansSectorsSummaryMetadata,
UserResponse,
UserData,
UserMetadata
} from './types.ts';
// Entity types
export type {
ItemStatus,
ItemGroup,
SalesItem,
Hierarchy,
Tree,
Plan,
PlanProduct,
WorkOrder,
PlanSectorSummary
} from './types.ts';
// Utility types
export type {
APIResponseHeaders,
RequestContext,
ClientErrorType,
ClientErrorDetails,
ExtractData,
ExtractMetadata,
EndpointMap,
AnyAPIResponse
} from './types.ts';
// Type guards
export {
isSuccessResponse,
isErrorResponse
} from './types.ts';
// Response helpers
export {
safeExtractData,
safeExtractMetadata,
getErrorDetails,
isSuccess,
isError,
transformResponseData,
combineResponses
} from './response-helpers.ts';
// ============================================================================
// Error Classes
// ============================================================================
export {
HanaQueryClientError,
NetworkError,
TimeoutError,
ValidationError,
AuthorizationError,
NotFoundError,
ServerError,
UnknownError
} from './errors.ts';
// Error utilities
export {
createErrorFromResponse,
createNetworkError,
isRetryableError,
getRetryDelay,
isNetworkError,
isTimeoutError,
isValidationError,
isAuthorizationError,
isNotFoundError,
isServerError,
isHanaQueryClientError
} from './errors.ts';
// ============================================================================
// Configuration
// ============================================================================
export {
DEFAULT_CONFIG,
ENVIRONMENT_CONFIGS,
API_VERSION,
API_BASE_PATH,
ENDPOINTS,
HTTP_STATUS,
ENDPOINT_TIMEOUTS,
RETRY_CONFIG,
HEADERS,
AUTH_STATUS,
createConfig,
createConfigFromEnvironment,
getEndpointTimeout,
validateConfig,
getApiUrl,
replacePathParams,
buildQueryString
} from './config.ts';
// ============================================================================
// Convenience Exports (Removed due to circular dependency issues)
// ============================================================================
// NOTE: The convenience exports have been removed to fix TypeScript compilation
// errors. Users should import and use the client directly:
//
// import { HanaQueryClient, createClient } from '@ritas-inc/hanaqueryapi-client';
// const client = createClient({ baseUrl: 'http://localhost:3000' });
//
// The following utilities can still be implemented in user code as needed.
// ============================================================================
// Default Export
// ============================================================================
/**
* Default export is the main client class for CommonJS compatibility
*/
export default HanaQueryClient;
// ============================================================================
// Version Information
// ============================================================================
export const VERSION = '1.0.0';
export const CLIENT_NAME = 'hana-query-client';
/**
* Module metadata
*/
export const meta = {
name: CLIENT_NAME,
version: VERSION,
description: 'TypeScript client for HANA Query API',
capabilities: [
'Full TypeScript support',
'Automatic retry logic',
'Request/response logging',
'Error handling with custom error types',
'Configurable timeouts and retries',
'Multiple environment support',
'Fluent request builder API',
'Type-safe responses',
'Header-based authorization checking'
]
} as const;