text.ts 715 B

12345678910111213141516171819202122
  1. import type { CodegenContext } from '../generate'
  2. import type { CreateTextNodeIRNode, SetTextIRNode } from '../ir'
  3. import { genExpression } from './expression'
  4. export function genSetText(oper: SetTextIRNode, context: CodegenContext) {
  5. const { pushFnCall, newline, vaporHelper } = context
  6. newline()
  7. pushFnCall(vaporHelper('setText'), `n${oper.element}`, 'undefined', () =>
  8. genExpression(oper.value, context),
  9. )
  10. }
  11. export function genCreateTextNode(
  12. oper: CreateTextNodeIRNode,
  13. context: CodegenContext,
  14. ) {
  15. const { pushNewline, pushFnCall, vaporHelper } = context
  16. pushNewline(`const n${oper.id} = `)
  17. pushFnCall(vaporHelper('createTextNode'), () =>
  18. genExpression(oper.value, context),
  19. )
  20. }