UNPKG

@zohodesk/docs-builder

Version:

docs-builder is used to build your own docs

42 lines (36 loc) 1.27 kB
const parser = require('@babel/parser'); const traverse = require('@babel/traverse').default; const generate = require('@babel/generator').default; const path = require('path'); function getFilename(originalFilePath) { return path.basename(originalFilePath, path.extname(originalFilePath)); } function sourceCodeFormatter(source, filePath) { const fileName = getFilename(filePath); const ast = parser.parse(source, { sourceType: 'module', plugins: ['jsx'] }); traverse(ast, { IfStatement(path) { const test = path.node.test; if (test.type === 'Identifier' && test.name === '__DOCS__') { path.remove(); } }, ExpressionStatement(path) { const expression = path.node.expression; if ( expression?.type === 'AssignmentExpression' && expression.left.type === 'MemberExpression' ) { const leftExpr = generate(expression.left).code; // Get the left side expression as string if (leftExpr === `${fileName}`) { path.remove(); } } } }); return generate(ast).code; } module.exports = sourceCodeFormatter;