UNPKG

review-copilot

Version:

ReviewCopilot - AI-powered code review assistant with customizable prompts

50 lines (49 loc) 1.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileContentProviderFactory = exports.GitPlatformFileContentProvider = exports.LocalFileContentProvider = void 0; const fs_1 = __importDefault(require("fs")); class LocalFileContentProvider { async getFileContent(filePath) { try { return fs_1.default.readFileSync(filePath, 'utf8'); } catch (error) { console.error('Error reading local file:', error); return null; } } } exports.LocalFileContentProvider = LocalFileContentProvider; class GitPlatformFileContentProvider { constructor(gitService) { this.gitService = gitService; } async getFileContent(filePath, context) { if (!context?.owner || !context?.repo || !context?.pullNumber) { throw new Error('Missing required context for Git platform file content retrieval'); } return this.gitService.getFileContent({ owner: context.owner, repo: context.repo, filePath, pullNumber: context.pullNumber, }); } } exports.GitPlatformFileContentProvider = GitPlatformFileContentProvider; class FileContentProviderFactory { static createProvider(gitService) { if (process.env.GITHUB_ACTIONS === 'true' || process.env.GITLAB_CI === 'true') { if (!gitService) { throw new Error('Git service is required for CI environment'); } return new GitPlatformFileContentProvider(gitService); } return new LocalFileContentProvider(); } } exports.FileContentProviderFactory = FileContentProviderFactory;