import { DownloadProgressT } from '../types'; import { HttpsProxyAgent } from 'https-proxy-agent'; import './resolve-config'; export interface RedisBinaryDownloadOpts { version?: string; downloadDir?: string; ignoreDownloadCache?: boolean; } interface HttpDownloadOptions { hostname: string; port: string; path: string; protocol: string; method: 'GET' | 'POST'; rejectUnauthorized?: boolean; agent: HttpsProxyAgent | undefined; } /** * Download and extract the "redis-server" binary */ export default class RedisBinaryDownload { dlProgress: DownloadProgressT; _downloadingUrl?: string; downloadDir: string; version: string; ignoreDownloadCache: boolean; constructor({ downloadDir, version, ignoreDownloadCache }: RedisBinaryDownloadOpts); /** * Get the path of the already downloaded "redis-server" file * otherwise download it and then return the path */ getRedisServerPath(): Promise; /** * Download the Redis Archive * @returns The Redis Archive location */ startDownload(): Promise; /** * Download file from downloadUrl * @param downloadUrl URL to download a File */ download(downloadUrl: string): Promise; /** * Extract given Archive * @param redisArchive Archive location * @returns extracted directory location */ extract(redisArchive: string): Promise; /** * Extract a .tar.gz archive * @param redisArchive Archive location * @param extractDir Directory to extract to */ extractTarGz(redisArchive: string, extractDir: string): Promise; /** * Extract a .msi archive * @param redisArchive Archive location * @param extractDir Directory to extract to */ extractMsi(redisArchive: string, extractDir: string): Promise; /** * Downlaod given httpOptions to tempDownloadLocation, then move it to downloadLocation * @param httpOptions The httpOptions directly passed to https.get * @param downloadLocation The location the File should be after the download * @param tempDownloadLocation The location the File should be while downloading */ httpDownload(httpOptions: HttpDownloadOptions, downloadLocation: string, tempDownloadLocation: string): Promise; /** * Print the Download Progress to STDOUT * @param chunk A chunk to get the length */ printDownloadProgress(chunk: { length: number; }): void; /** * Make and install given extracted directory * @param extractDir Extracted directory location * @returns void */ makeInstall(extractDir: string): Promise; /** * copy binary to parent folder and delete given extracted directory * @param extractDir Extracted directory location * @returns void */ makeInstallWin32(extractDir: string): Promise; /** * Test if the location given is already used * Does *not* dereference links * @param location The Path to test */ locationExists(location: string): Promise; } export {}; //# sourceMappingURL=RedisBinaryDownload.d.ts.map