'use strict'; /** @param {import('../index.js').Options} options */ function CommentRemover(options) { this.options = options; } /** * @param {string} comment * @return {boolean | undefined} */ CommentRemover.prototype.canRemove = function (comment) { const remove = this.options.remove; if (remove) { return remove(comment); } else { const isImportant = comment.indexOf('!') === 0; if (!isImportant) { return true; } if (this.options.removeAll || this._hasFirst) { return true; } else if (this.options.removeAllButFirst && !this._hasFirst) { this._hasFirst = true; return false; } } }; module.exports = CommentRemover;