diff --git a/src/cli/actions/remoteAction.ts b/src/cli/actions/remoteAction.ts index 5dd1e0362..689d1d8c6 100644 --- a/src/cli/actions/remoteAction.ts +++ b/src/cli/actions/remoteAction.ts @@ -7,7 +7,7 @@ import { RepomixError } from '../../shared/errorHandle.js'; import { logger } from '../../shared/logger.js'; import type { CliOptions } from '../cliRun.js'; import Spinner from '../cliSpinner.js'; -import { runDefaultAction } from './defaultAction.js'; +import { type DefaultActionRunnerResult, runDefaultAction } from './defaultAction.js'; export const runRemoteAction = async ( repoUrl: string, @@ -16,7 +16,7 @@ export const runRemoteAction = async ( isGitInstalled, execGitShallowClone, }, -): Promise => { +): Promise => { if (!(await deps.isGitInstalled())) { throw new RepomixError('Git is not installed or not in the system PATH.'); } @@ -24,6 +24,7 @@ export const runRemoteAction = async ( const spinner = new Spinner('Cloning repository...'); const tempDirPath = await createTempDirectory(); + let result: DefaultActionRunnerResult; try { spinner.start(); @@ -37,7 +38,7 @@ export const runRemoteAction = async ( logger.log(''); // Run the default action on the cloned repository - const result = await runDefaultAction(tempDirPath, tempDirPath, options); + result = await runDefaultAction(tempDirPath, tempDirPath, options); await copyOutputToCurrentDirectory(tempDirPath, process.cwd(), result.config.output.filePath); } catch (error) { spinner.fail('Error during repository cloning. cleanup...'); @@ -46,6 +47,8 @@ export const runRemoteAction = async ( // Cleanup the temporary directory await cleanupTempDirectory(tempDirPath); } + + return result; }; export const formatGitUrl = (url: string): string => { diff --git a/src/index.ts b/src/index.ts index 926d27ee8..31b1b7a3c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,6 @@ export { pack } from './core/packager.js'; export type { RepomixConfigFile as RepomixConfig } from './config/configSchema.js'; export { run as cli } from './cli/cliRun.js'; +export { runInitAction } from './cli/actions/initAction.js'; +export { runRemoteAction } from './cli/actions/remoteAction.js'; +export { runDefaultAction } from './cli/actions/defaultAction.js'; diff --git a/tests/cli/cliRun.test.ts b/tests/cli/cliRun.test.ts index b795351c9..77c79443d 100644 --- a/tests/cli/cliRun.test.ts +++ b/tests/cli/cliRun.test.ts @@ -75,7 +75,39 @@ describe('cliRun', () => { } satisfies PackResult, }); vi.mocked(initAction.runInitAction).mockResolvedValue(); - vi.mocked(remoteAction.runRemoteAction).mockResolvedValue(); + vi.mocked(remoteAction.runRemoteAction).mockResolvedValue({ + config: { + cwd: process.cwd(), + output: { + filePath: 'repomix-output.txt', + style: 'plain', + fileSummary: true, + directoryStructure: true, + topFilesLength: 5, + showLineNumbers: false, + removeComments: false, + removeEmptyLines: false, + copyToClipboard: false, + }, + include: [], + ignore: { + useGitignore: true, + useDefaultPatterns: true, + customPatterns: [], + }, + security: { + enableSecurityCheck: true, + }, + } satisfies RepomixConfigMerged, + packResult: { + totalFiles: 0, + totalCharacters: 0, + totalTokens: 0, + fileCharCounts: {}, + fileTokenCounts: {}, + suspiciousFilesResults: [], + } satisfies PackResult, + }); vi.mocked(versionAction.runVersionAction).mockResolvedValue(); });