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

68 lines 2.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FolderRegistry = void 0; const detectorPatterns_1 = require("../constants/detectorPatterns"); /** * Registry for DDD folder names used in aggregate boundary detection * * Centralizes folder name management for cleaner code organization * and easier maintenance of folder name rules. */ class FolderRegistry { entityFolders; valueObjectFolders; allowedFolders; nonAggregateFolders; constructor() { this.entityFolders = new Set([ detectorPatterns_1.DDD_FOLDER_NAMES.ENTITIES, detectorPatterns_1.DDD_FOLDER_NAMES.AGGREGATES, ]); this.valueObjectFolders = new Set([ detectorPatterns_1.DDD_FOLDER_NAMES.VALUE_OBJECTS, detectorPatterns_1.DDD_FOLDER_NAMES.VO, ]); this.allowedFolders = new Set([ detectorPatterns_1.DDD_FOLDER_NAMES.VALUE_OBJECTS, detectorPatterns_1.DDD_FOLDER_NAMES.VO, detectorPatterns_1.DDD_FOLDER_NAMES.EVENTS, detectorPatterns_1.DDD_FOLDER_NAMES.DOMAIN_EVENTS, detectorPatterns_1.DDD_FOLDER_NAMES.REPOSITORIES, detectorPatterns_1.DDD_FOLDER_NAMES.SERVICES, detectorPatterns_1.DDD_FOLDER_NAMES.SPECIFICATIONS, detectorPatterns_1.DDD_FOLDER_NAMES.ERRORS, detectorPatterns_1.DDD_FOLDER_NAMES.EXCEPTIONS, ]); this.nonAggregateFolders = new Set([ detectorPatterns_1.DDD_FOLDER_NAMES.VALUE_OBJECTS, detectorPatterns_1.DDD_FOLDER_NAMES.VO, detectorPatterns_1.DDD_FOLDER_NAMES.EVENTS, detectorPatterns_1.DDD_FOLDER_NAMES.DOMAIN_EVENTS, detectorPatterns_1.DDD_FOLDER_NAMES.REPOSITORIES, detectorPatterns_1.DDD_FOLDER_NAMES.SERVICES, detectorPatterns_1.DDD_FOLDER_NAMES.SPECIFICATIONS, detectorPatterns_1.DDD_FOLDER_NAMES.ENTITIES, detectorPatterns_1.DDD_FOLDER_NAMES.CONSTANTS, detectorPatterns_1.DDD_FOLDER_NAMES.SHARED, detectorPatterns_1.DDD_FOLDER_NAMES.FACTORIES, detectorPatterns_1.DDD_FOLDER_NAMES.PORTS, detectorPatterns_1.DDD_FOLDER_NAMES.INTERFACES, detectorPatterns_1.DDD_FOLDER_NAMES.ERRORS, detectorPatterns_1.DDD_FOLDER_NAMES.EXCEPTIONS, ]); } isEntityFolder(folderName) { return this.entityFolders.has(folderName); } isValueObjectFolder(folderName) { return this.valueObjectFolders.has(folderName); } isAllowedFolder(folderName) { return this.allowedFolders.has(folderName); } isNonAggregateFolder(folderName) { return this.nonAggregateFolders.has(folderName); } } exports.FolderRegistry = FolderRegistry; //# sourceMappingURL=FolderRegistry.js.map