UNPKG

@mintlify/common

Version:

Commonly shared code within Mintlify

24 lines (23 loc) 1.14 kB
import { remove } from 'unist-util-remove'; import { findExportedNodes } from '../../lib/index.js'; import { estreeIsProgram } from '../../utils.js'; export const remarkMdxRemoveUnusedVariables = () => (tree) => { const exportedVariables = findExportedNodes(tree, 'Literal', 'JSXElement'); remove(tree, (node) => { if (!(nodeIsMdxFlowExpression(node) || nodeIsMdxTextExpression(node)) || !estreeIsProgram(node)) return false; if (node.data.estree.body[0] == undefined || node.data.estree.body.length > 1) return false; if (node.data.estree.body[0].type !== 'ExpressionStatement') return false; if (node.data.estree.body[0].expression.type !== 'Identifier') return false; if (exportedVariables.includes(node.data.estree.body[0].expression.name)) return false; if (node.data.estree.body[0].expression.name === 'user') return false; return true; }); }; const nodeIsMdxFlowExpression = (node) => node.type === 'mdxFlowExpression'; const nodeIsMdxTextExpression = (node) => node.type === 'mdxTextExpression';