@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
JavaScript
;
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