UNPKG

ember-source

Version:

A JavaScript framework for creating ambitious web applications

34 lines (31 loc) 1.09 kB
import '../../../debug/index.js'; import { isPath, trackLocals } from './utils.js'; import { isDevelopingApp } from '@embroider/macros'; import { assert } from '../../../debug/lib/assert.js'; function transformEachTrackArray(env) { let { builders: b } = env.syntax; let { hasLocal, visitor } = trackLocals(env); return { name: 'transform-each-track-array', visitor: { ...visitor, BlockStatement(node) { if (isPath(node.path) && node.path.original === 'each' && !hasLocal('each')) { let firstParam = node.params[0]; (isDevelopingApp() && !(firstParam) && assert('has firstParam', firstParam)); if (firstParam.type === 'SubExpression' && firstParam.path.type === 'PathExpression' && firstParam.path.original === '-each-in') { return; } node.params[0] = b.sexpr(b.path('-track-array'), [firstParam]); return b.block(b.path('each'), node.params, node.hash, node.program, node.inverse, node.loc); } } } }; } export { transformEachTrackArray as default };