UNPKG

@jackchuka/gql-ingest

Version:

A CLI tool for ingesting data from files into a GraphQL API. Supports CSV, JSON, JSONL, and YAML file formats.

49 lines 2.07 kB
import { GraphQLClientWrapper } from "./graphql-client"; import { MetricsCollector } from "./metrics"; import { ParallelProcessingConfig, RetryConfig } from "./config"; import { Logger } from "./logger"; import { EntityStartEventPayload, EntityCompleteEventPayload, RowSuccessEventPayload, RowFailureEventPayload } from "./events"; export interface MappingConfig { csvFile?: string; dataFile?: string; dataFormat?: string; graphqlFile: string; mapping: Record<string, unknown>; } /** * Callbacks for entity processing events */ export interface EntityProcessingCallbacks { onEntityStart?: (payload: Omit<EntityStartEventPayload, "waveIndex">) => void; onEntityComplete?: (payload: EntityCompleteEventPayload) => void; onRowSuccess?: (payload: RowSuccessEventPayload) => void; onRowFailure?: (payload: RowFailureEventPayload) => void; } export declare class DataMapper { private client; private basePath; private metrics; private logger; private formatOverride?; constructor(client: GraphQLClientWrapper, basePath?: string, metrics?: MetricsCollector, logger?: Logger, formatOverride?: string); discoverMappings(configDir: string, entityFilter?: string[]): string[]; /** * Process an entity (backward-compatible method) */ processEntity(configPath: string, parallelConfig?: ParallelProcessingConfig, retryConfig?: RetryConfig): Promise<void>; /** * Process an entity with event callbacks and abort support */ processEntityWithEvents(configPath: string, parallelConfig?: ParallelProcessingConfig, retryConfig?: RetryConfig, signal?: AbortSignal, callbacks?: EntityProcessingCallbacks): Promise<void>; private processRowsSequentiallyWithEvents; private processRowsConcurrentlyWithEvents; private chunkArray; private mapRowToVariables; private getValueByPath; private mapNestedObject; private extractVariableTypes; private extractTypeName; private convertValue; getMetrics(): MetricsCollector; } //# sourceMappingURL=mapper.d.ts.map