fn = (_root, params) => {
  const { preservePatterns = DEFAULT_PRESERVE_PATTERNS } = params;

  return {
    comment: {
      enter: (node, parentNode) => {
        if (preservePatterns) {
          if (!Array.isArray(preservePatterns)) {
            throw Error(
              `Expected array in removeComments preservePatterns parameter but received ${preservePatterns}`,
            );
          }

          const matches = preservePatterns.some((pattern) => {
            return new RegExp(pattern).test(node.value);
          });

          if (matches) {
            return;
          }
        }

        detachNodeFromParent(node, parentNode);
      },
    },
  };
}
Remove comments.

@example
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export
Plug-In . SVG Version: 6.00 Build 0)  -->

@author Kir Belevich

@type {import('../lib/types.js').Plugin<RemoveCommentsParams>}