@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
29 lines (28 loc) • 1.39 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { StatusCodes } from 'http-status-codes';
import { ChildProcess } from 'node:child_process';
import EventEmitter from 'node:events';
import { EPSError } from '../../../types/eps-error';
import { ConnectionData } from '../../../../shared/types/connection-data';
import { type SecretsType } from '../../../../shared/types/secrets-type';
import { ExtractApiResponse } from '../../../types/extract-api-response';
import { SchemaDoneExtractorMessage } from '../../../types/extractor-message';
export type ExtractHandlerRequest = {
tacoPath: string;
connectorClass: string;
connectionId: string;
secrets?: SecretsType;
connectionData: ConnectionData;
};
export type ExtractResponse = {
httpStatusCode: StatusCodes;
response: ExtractApiResponse | EPSError;
};
export declare function validateConnectionData(body: unknown): asserts body is ConnectionData;
export declare function handleExtract(extractorLaunchedEvent: EventEmitter, extractHandlerRequest: ExtractHandlerRequest): Promise<ExtractResponse>;
/**
* Wait for the extractor process to send the message to EPS.
* The function will settle the promise on the first (known) message sent from extractor.
*/
export declare function waitForExtractorMessage(extractorProcess: ChildProcess, connectionId: string): Promise<SchemaDoneExtractorMessage>;