repomix
Version:
A tool to pack repository contents to single file for AI consumption
27 lines (26 loc) • 1.17 kB
TypeScript
import { Transform } from 'node:stream';
import { pipeline } from 'node:stream/promises';
import * as zlib from 'node:zlib';
import { extract as tarExtract } from 'tar';
import { createArchiveEntryFilter } from './archiveEntryFilter.js';
import type { GitHubRepoInfo } from './gitRemoteParse.js';
export interface ArchiveDownloadOptions {
timeout?: number;
retries?: number;
}
export interface ArchiveDownloadProgress {
downloaded: number;
total: number | null;
percentage: number | null;
}
export type ProgressCallback = (progress: ArchiveDownloadProgress) => void;
export interface ArchiveDownloadDeps {
fetch: typeof globalThis.fetch;
pipeline: typeof pipeline;
Transform: typeof Transform;
tarExtract: typeof tarExtract;
createGunzip: typeof zlib.createGunzip;
createArchiveEntryFilter: typeof createArchiveEntryFilter;
}
export declare const downloadGitHubArchive: (repoInfo: GitHubRepoInfo, targetDirectory: string, options?: ArchiveDownloadOptions, onProgress?: ProgressCallback, deps?: ArchiveDownloadDeps) => Promise<void>;
export declare const isArchiveDownloadSupported: (_repoInfo: GitHubRepoInfo) => boolean;