pino-elasticsearch icon indicating copy to clipboard operation
pino-elasticsearch copied to clipboard

Typescript definition

Open JoHuang opened this issue 4 years ago • 4 comments

I would like to use this package as module in a Typescript project. However I can't find typescript definition. It would be great to have it for integrating into Typescript projects.

JoHuang avatar Jun 09 '20 14:06 JoHuang

this should be enough

declare module 'pino-elasticsearch' {
  import {DestinationStream} from 'pino';
  import {ConnectionOptions as TlsConnectionOptions} from 'tls';
  import Connection, {AgentOptions} from '@elastic/elasticsearch/lib/Connection';
  import {BasicAuth, ApiKeyAuth, BearerAuth} from '@elastic/elasticsearch/lib/pool';

  type DynamicIndexFunction = (logTime: string) => string;

  interface NodeOptions {
    url: URL;
    id?: string;
    agent?: AgentOptions;
    ssl?: TlsConnectionOptions;
    headers?: Record<string, any>;
    roles?: {
      master: boolean;
      data: boolean;
      ingest: boolean;
      ml: boolean;
    };
  }

  export interface Options {
    index?: string | DynamicIndexFunction;
    op_type?: string;
    'es-version'?: number;
    'flush-bytes'?: number;
    node?: string | string[] | NodeOptions | NodeOptions[];
    auth?: BasicAuth | ApiKeyAuth | BearerAuth;
    cloud?: {
      id: string;
      // TODO: remove username and password here in 8
      username?: string;
      password?: string;
    };
    ssl?: TlsConnectionOptions;
    Connection?: typeof Connection;
  }

  export default function pinoElasticSearch(opts: Options): DestinationStream;
}

xxzefgh avatar Apr 07 '22 10:04 xxzefgh

+1

mikemajesty avatar Feb 15 '23 22:02 mikemajesty

Would you like to send a Pull Request to address this issue? Remember to add unit tests, we use tsd for types.

mcollina avatar Feb 17 '23 08:02 mcollina

plz help ~

jongsun112 avatar Jul 15 '23 13:07 jongsun112