From cc7895244d24025a06f48fa3e5988c1f41099b81 Mon Sep 17 00:00:00 2001 From: izzy Date: Tue, 18 Nov 2025 16:53:10 +0000 Subject: [PATCH] feat: StorageRepository#createGzip,createGunzip,createPlainReadStream --- server/src/repositories/storage.repository.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/server/src/repositories/storage.repository.ts b/server/src/repositories/storage.repository.ts index e901273b57..7345dfef5b 100644 --- a/server/src/repositories/storage.repository.ts +++ b/server/src/repositories/storage.repository.ts @@ -5,7 +5,8 @@ import { escapePath, glob, globStream } from 'fast-glob'; import { constants, createReadStream, createWriteStream, existsSync, mkdirSync, ReadOptionsWithBuffer } from 'node:fs'; import fs from 'node:fs/promises'; import path from 'node:path'; -import { Readable, Writable } from 'node:stream'; +import { PassThrough, Readable, Writable } from 'node:stream'; +import { createGunzip, createGzip } from 'node:zlib'; import { CrawlOptionsDto, WalkOptionsDto } from 'src/dtos/library.dto'; import { LoggingRepository } from 'src/repositories/logging.repository'; import { mimeTypes } from 'src/utils/mime-types'; @@ -93,6 +94,18 @@ export class StorageRepository { return { stream: archive, addFile, finalize }; } + createGzip(): PassThrough { + return createGzip(); + } + + createGunzip(): PassThrough { + return createGunzip(); + } + + createPlainReadStream(filepath: string): Readable { + return createReadStream(filepath); + } + async createReadStream(filepath: string, mimeType?: string | null): Promise { const { size } = await fs.stat(filepath); await fs.access(filepath, constants.R_OK);