crapifyme
Version:
Ultra-fast developer productivity CLI tools - remove comments, logs, and more
87 lines • 3.24 kB
JavaScript
;
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