Files
2019-01-25 17:01:52 +08:00

30 lines
778 B
JavaScript

'use strict';
function CommentRemover (options) {
if (!(this instanceof CommentRemover)) {
return new CommentRemover(options);
}
this.options = options;
}
CommentRemover.prototype.canRemove = function (comment) {
var remove = this.options.remove;
if (remove) {
return remove(comment);
} else {
var isImportant = comment.indexOf('!') === 0;
if (!isImportant) {
return true;
} else if (isImportant) {
if (this.options.removeAll || this._hasFirst) {
return true;
} else if (this.options.removeAllButFirst && !this._hasFirst) {
this._hasFirst = true;
return false;
}
}
}
};
module.exports = CommentRemover;