UNPKG

ember-source

Version:

A JavaScript framework for creating ambitious web applications

58 lines (46 loc) 1.12 kB
import { isPath, trackLocals } from './utils.js'; /** @module ember */ /** A Glimmer2 AST transformation that replaces all instances of ```handlebars {{mount "engine" model=this.model}} ``` with ```handlebars {{component (-mount "engine" model=this.model)}} ``` and ```handlebars {{outlet}} ``` with ```handlebars {{component (-outlet)}} ``` @private @class TransformHasBlockSyntax */ function transformWrapMountAndOutlet(env) { let { builders: b } = env.syntax; let { hasLocal, visitor } = trackLocals(env); return { name: 'transform-wrap-mount-and-outlet', visitor: { ...visitor, MustacheStatement(node) { if (isPath(node.path) && (node.path.original === 'mount' || node.path.original === 'outlet') && !hasLocal(node.path.original)) { let subexpression = b.sexpr(b.path(`-${node.path.original}`), node.params, node.hash, node.loc); return b.mustache(b.path('component'), [subexpression], b.hash(), undefined, node.loc); } } } }; } export { transformWrapMountAndOutlet as default };