UNPKG

winston-s3-transport

Version:

Logs generated through Winston can be transferred to an S3 bucket using `winston-s3-transport`.

90 lines (89 loc) 1.64 kB
/// <reference types="node" /> import Transport from "winston-transport"; import { CompleteMultipartUploadCommandOutput, S3ClientConfig } from "@aws-sdk/client-s3"; import { PassThrough } from "stream"; /** * Config */ export interface Config<T = any> { /** * bucket */ bucket: string; /** * generateGruop */ generateGruop?: (log: T) => string; /** * generateBucketPath */ generateBucketPath?: (group: string, log: T) => string; /** * maxBufferSize */ maxBufferSize?: number; /** * maxBufferCount */ maxBufferCount?: number; /** * maxFileSize */ maxFileSize?: number; /** * maxFileAge */ maxFileAge?: number; /** * gzip */ gzip?: boolean; } /** * Options */ export interface Options extends Transport.TransportStreamOptions { /** * s3ClientConfig * @see https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/interfaces/s3clientconfig.html */ s3ClientConfig: S3ClientConfig; /** * S3TransportConfig */ s3TransportConfig: Config; } /** * StreamInfoName */ export declare enum StreamInfoName { /** * TotalWrittenBytes */ TotalWrittenBytes = 0, /** * Stream */ Stream = 1, /** * S3Upload */ S3Upload = 2 } /** * StreamInfo */ export type StreamInfo = [ /** * totalWrittenBytes */ totalWrittenBytes: number, /** * stream */ stream: PassThrough, /** * s3Upload */ s3Upload: Promise<CompleteMultipartUploadCommandOutput> ];