import type { Options } from 'rotating-file-stream'; export interface PinoRotatingFileStreamOptions extends Options { path: string; } const generator = (time: number | Date, index?: number) => { if (!time) { return 'server.log'; } time = new Date(time); const month = String(time.getMonth() + 1).padStart(2, '0'); const day = String(time.getDate()).padStart(2, '0'); if (index) { const count = String(index).padStart(3, '0'); return `server.${time.getFullYear()}${month}${day}-${count}.log`; } return `server.${time.getFullYear()}${month}${day}.log`; }; export default (options: PinoRotatingFileStreamOptions) => { const { createStream } = require('rotating-file-stream') as typeof import('rotating-file-stream'); const { path } = options; return createStream(generator, { size: '50M', maxSize: '500M', interval: '1d', path, }); };