UNPKG

sugaryjs

Version:

Allowing Developers to Write their Own Syntactic Sugars for JavaScript

18 lines (15 loc) 483 B
import traverse from "@babel/traverse"; import * as jsParser from "@babel/parser"; export default function desugar(ejsAST, syntacticIdentifier, semanticTranslation) { let jsAST = Object.assign({}, ejsAST); traverse(jsAST, { enter(path) { if (path.node.type === syntacticIdentifier) { path.replaceWith( semanticTranslation(...path.node.children) ); } } }); return jsAST; }