UNPKG

crapifyme

Version:

Ultra-fast developer productivity CLI tools - remove comments, logs, and more

87 lines 3.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CustomPreservationRule = exports.DocumentationPreservationRule = exports.ToolingPreservationRule = exports.DevelopmentPreservationRule = exports.FrameworkPreservationRule = exports.BasePreservationRule = void 0; const types_1 = require("./types"); class BasePreservationRule { constructor(name, pattern, priority, description, category) { this.name = name; this.pattern = pattern; this.priority = priority; this.description = description; this.category = category; } matches(comment) { return this.pattern.test(comment); } extractMetadata(comment) { return {}; } } exports.BasePreservationRule = BasePreservationRule; class FrameworkPreservationRule extends BasePreservationRule { constructor(name, pattern, priority, description, framework) { super(name, pattern, priority, description, types_1.CommentCategory.FRAMEWORK); this.framework = framework; } extractMetadata(comment) { return { framework: this.framework, category: this.category }; } } exports.FrameworkPreservationRule = FrameworkPreservationRule; class DevelopmentPreservationRule extends BasePreservationRule { constructor(name, pattern, priority, description, keywords) { super(name, pattern, priority, description, types_1.CommentCategory.DEVELOPMENT); this.keywords = keywords; } extractMetadata(comment) { const matchedKeyword = this.keywords.find(keyword => new RegExp(`\\b${keyword}\\b`, 'i').test(comment)); return { keyword: matchedKeyword, category: this.category }; } } exports.DevelopmentPreservationRule = DevelopmentPreservationRule; class ToolingPreservationRule extends BasePreservationRule { constructor(name, pattern, priority, description, tool) { super(name, pattern, priority, description, types_1.CommentCategory.TOOLING); this.tool = tool; } extractMetadata(comment) { return { tool: this.tool, category: this.category }; } } exports.ToolingPreservationRule = ToolingPreservationRule; class DocumentationPreservationRule extends BasePreservationRule { constructor(name, pattern, priority, description) { super(name, pattern, priority, description, types_1.CommentCategory.DOCUMENTATION); } extractMetadata(comment) { const jsdocTags = comment.match(/@\w+/g) || []; return { jsdocTags, category: this.category }; } } exports.DocumentationPreservationRule = DocumentationPreservationRule; class CustomPreservationRule extends BasePreservationRule { constructor(name, pattern, priority, description, userPattern) { super(name, pattern, priority, description, types_1.CommentCategory.CUSTOM); this.userPattern = userPattern; } extractMetadata(comment) { return { userPattern: this.userPattern, category: this.category }; } } exports.CustomPreservationRule = CustomPreservationRule; //# sourceMappingURL=preservation-rules.js.map