UNPKG

@ritas-inc/hanaqueryapi-client

Version:

TypeScript client for HANA Query API with full type safety and error handling

274 lines (252 loc) 6.38 kB
/** * 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, SearchCriteria, 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, QtyPerTagResponse, QtyPerTagData, QtyPerTagMetadata, PlansResponse, PlansData, PlansMetadata, SinglePlanResponse, SinglePlanData, SinglePlanMetadata, PlanProductsResponse, PlanProductsData, PlanProductsMetadata, PlanWorkOrdersResponse, PlanWorkOrdersData, PlanWorkOrdersMetadata, PlanTagsResponse, PlanTagsData, PlanTagsMetadata, PlanSectorsSummaryResponse, PlanSectorsSummaryData, PlanSectorsSummaryMetadata, AllPlansSectorsSummaryResponse, AllPlansSectorsSummaryData, AllPlansSectorsSummaryMetadata, UserResponse, UserData, UserMetadata, TagResponse, TagData, TagMetadata, WorkOrderTagsResponse, WorkOrderTagsData, WorkOrderTagsMetadata, InjectionMachinesResponse, InjectionMachinesData, InjectionMachinesMetadata, SingleInjectionMachineResponse, SingleInjectionMachineData, SingleInjectionMachineMetadata, MoldsResponse, MoldsData, MoldsMetadata, SingleMoldResponse, SingleMoldData, SingleMoldMetadata, BusinessPartnersResponse, BusinessPartnersData, BusinessPartnersMetadata, BusinessPartnersSearchResponse, BusinessPartnersSearchMetadata, ContactsResponse, ContactsData, ContactsMetadata, ContactsSearchResponse, ContactsSearchMetadata, BusinessPartnerContactsResponse, BusinessPartnerContactsMetadata } from './types.ts'; // Entity types export type { ItemStatus, ItemGroup, SalesItem, Hierarchy, Tree, QtyPerTag, Tag, TagUsage, TagStatus, InjectionMachine, Mold, Plan, PlanProduct, WorkOrder, PlanTag, PlanSectorSummary, BusinessPartner, Contact } 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;