UNPKG

@samiyev/guardian

Version:

Research-backed code quality guardian for AI-assisted development. Detects hardcodes, secrets, circular deps, framework leaks, entity exposure, and 9 architecture violations. Enforces Clean Architecture/DDD principles. Works with GitHub Copilot, Cursor, W

50 lines 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CollectFiles = void 0; const SourceFile_1 = require("../../../domain/entities/SourceFile"); const ProjectPath_1 = require("../../../domain/value-objects/ProjectPath"); const constants_1 = require("../../../shared/constants"); /** * Pipeline step responsible for file collection and basic parsing */ class CollectFiles { fileScanner; constructor(fileScanner) { this.fileScanner = fileScanner; } async execute(request) { const filePaths = await this.fileScanner.scan({ rootDir: request.rootDir, include: request.include, exclude: request.exclude, }); const sourceFiles = []; for (const filePath of filePaths) { const content = await this.fileScanner.readFile(filePath); const projectPath = ProjectPath_1.ProjectPath.create(filePath, request.rootDir); const imports = this.extractImports(content); const exports = this.extractExports(content); const sourceFile = new SourceFile_1.SourceFile(projectPath, content, imports, exports); sourceFiles.push(sourceFile); } return { sourceFiles }; } extractImports(content) { const imports = []; let match; while ((match = constants_1.REGEX_PATTERNS.IMPORT_STATEMENT.exec(content)) !== null) { imports.push(match[1]); } return imports; } extractExports(content) { const exports = []; let match; while ((match = constants_1.REGEX_PATTERNS.EXPORT_STATEMENT.exec(content)) !== null) { exports.push(match[1]); } return exports; } } exports.CollectFiles = CollectFiles; //# sourceMappingURL=CollectFiles.js.map