UNPKG

@bazilio-san/af-stream

Version:
229 lines 6.71 kB
/// <reference types="node" /> import EventEmitter from 'events'; import { CallbackOrPromise, PoolOptions } from 'tarn/dist/Pool'; export declare type TEventRecord = { [fieldName: string | symbol]: any; }; export declare type Nullable<T> = T | null; /** * Data from the database, along with related information, to be sent to WSO2 over TCP as JSON */ export interface IRecordsComposite { sessionId: string; streamId: string; eventsPacket: TEventRecord[] | TEventRecord; tcpHeaderLength?: number; isSingleRecordAsObject?: boolean; first?: TEventRecord; last?: TEventRecord; sendCount?: number; sentBufferLength?: number; } /** Information for assembling TCP WSO2 messages */ export interface IEventComposite { sessionId: string; streamId: string; json: string; } export interface IEcho extends Function { echo: Function; error: Function; info: Function; debug: Function; silly: Function; } export interface ILoggerEx { error: Function; warn: Function; info: Function; debug: Function; silly: Function; isLevel: Function; } export interface TAccessPoint { consulServiceName: string; id: string; title: string; port: Nullable<number>; host: Nullable<string>; token: string; socketRequestId: string; waitForHostPortUpdated: (timeout: number) => Promise<boolean>; } export interface ISenderConfig { type: 'console' | 'tcp' | 'ws' | 'callback' | 'emitter'; host?: string; port?: number; accessPoint?: TAccessPoint; eventCallback?: Function; emitSingleEvent?: boolean; emitId?: string; } export interface ISender { sendEvents: Function; connect: Function; eventCallback?: Function; } export declare type TDbRecord = { [fieldName: string | symbol]: any; }; export declare type TYMDms = string; export declare type TFieldType = string; export declare type TFieldsTypes = { [fieldName: string]: TFieldType; }; export declare type TFieldList = string[]; export declare type TFields = TFieldsTypes | TFieldList; export interface IDbConfig { dialect: 'mssql' | 'pg'; options?: any; host?: string; server?: string; port: number; database: string; user: string; password: string; } export interface IPoolOptions<T> extends Omit<PoolOptions<T>, 'create' | 'destroy'> { create?: CallbackOrPromise<T>; destroy?: (resource: T) => any; } export interface IMsSqlConfig { driver?: string | undefined; user?: string | undefined; password?: string | undefined; server: string; port?: number | undefined; domain?: string | undefined; database?: string | undefined; arrayRowMode?: boolean | undefined; beforeConnect?: Function; options?: { beforeConnect?: void | undefined; connectionString?: string | undefined; enableArithAbort?: boolean | undefined; instanceName?: string | undefined; trustedConnection?: boolean | undefined; useUTC?: boolean | undefined; }; pool: IPoolOptions<any>; trustServerCertificate?: boolean | undefined; stream?: boolean | undefined; parseJSON?: boolean | undefined; requestTimeout?: number | undefined; connectionTimeout?: number | undefined; } export interface IPostgresClientConfig { user?: string | undefined; database?: string | undefined; password?: string | (() => string | Promise<string>) | undefined; port?: number | undefined; host?: string | undefined; connectionString?: string | undefined; keepAlive?: boolean | undefined; statement_timeout?: false | number | undefined; parseInputDatesAsUTC?: boolean | undefined; ssl?: any; keepAliveInitialDelayMillis?: number | undefined; idle_in_transaction_session_timeout?: number | undefined; application_name?: string | undefined; connectionTimeoutMillis?: number | undefined; options?: string | undefined; } export interface IPostgresConfig extends IPostgresClientConfig { max?: number | undefined; min?: number | undefined; idleTimeoutMillis?: number | undefined; log?: ((...messages: any[]) => void) | undefined; allowExitOnIdle?: boolean | undefined; maxUses?: number | undefined; } export interface IStreamConfig { streamId: string; fetchIntervalSec?: number; bufferMultiplier?: number; maxBufferSize?: number; src: { schema: string; table: string; idFields: string[]; timezoneOfTsField?: string; tsField: string; dbOptions: IMsSqlConfig | IPostgresConfig; dbConfig: IDbConfig; }; fields: TFields; printInfoIntervalSec?: number; } export interface ISenderConstructorOptions { streamConfig: IStreamConfig; senderConfig: ISenderConfig; serviceName: string; logger: ILoggerEx; echo: IEcho; exitOnError: Function; eventEmitter: EventEmitter; } export interface IDbConstructorOptions { streamConfig: IStreamConfig; logger: ILoggerEx; eventEmitter: EventEmitter; exitOnError: Function; dbOptions: IMsSqlConfig | IPostgresConfig; dbConfig: IDbConfig; millis2dbFn: Function; } export declare type TSlot = [leftIndex: number | null, foundIndex: number | null, rightIndex: number | null]; export interface IEmPortionOfDataSql { streamId: string; sql: string; startTs: number; endTs: number; limit: number; dbInfo: string; } export interface IEmPortionOfDataCount { streamId: string; sql: string; count: number; } export interface IEmVirtualHourChanged { prevN: number; currN: number; prevHZ: number; currHZ: number; prevTs: number; currTs: number; } export interface IEmVirtualDateChanged { prevN: number; currN: number; prevTs: number; currTs: number; } export interface IEmSubtractedLastTimeRecords { streamId: string; subtractedLastTimeRecords: TDbRecord[]; } export interface IEmCurrentLastTimeRecords { streamId: string; currentLastTimeRecords: TDbRecord[]; } export interface IEmBeforeLoadNextPortion { streamId: string; startTs: number; endTs: number; } export interface IEmAfterLoadNextPortion { streamId: string; startTs: number; endTs: number; lastRecordTs: number; last: TEventRecord | null; vt: number; } export interface IEmSaveLastTs { streamId: string; lastTs: number; } //# sourceMappingURL=interfaces.d.ts.map