import { genIf } from './if'
import { genDynamicProps, genSetProp } from './prop'
import { genDeclareOldRef, genSetTemplateRef } from './templateRef'
-import { genCreateTextNode, genGetTextChild, genSetText } from './text'
+import { genGetTextChild, genSetText } from './text'
import {
type CodeFragment,
INDENT_END,
return genSetHtml(oper, context)
case IRNodeTypes.SET_TEMPLATE_REF:
return genSetTemplateRef(oper, context)
- case IRNodeTypes.CREATE_TEXT_NODE:
- return genCreateTextNode(oper, context)
case IRNodeTypes.INSERT_NODE:
return genInsertNode(oper, context)
case IRNodeTypes.PREPEND_NODE:
import type { SimpleExpressionNode } from '@vue/compiler-dom'
import type { CodegenContext } from '../generate'
-import type {
- CreateTextNodeIRNode,
- GetTextChildIRNode,
- SetTextIRNode,
-} from '../ir'
+import type { GetTextChildIRNode, SetTextIRNode } from '../ir'
import { getLiteralExpressionValue } from '../utils'
import { genExpression } from './expression'
import { type CodeFragment, NEWLINE, genCall } from './utils'
]
}
-export function genCreateTextNode(
- oper: CreateTextNodeIRNode,
- context: CodegenContext,
-): CodeFragment[] {
- const { helper } = context
- const { id, values, jsx } = oper
- return [
- NEWLINE,
- `const n${id} = `,
- ...genCall(
- helper('createTextNode'),
- values && combineValues(values, context, jsx),
- ),
- ]
-}
-
function combineValues(
values: SimpleExpressionNode[],
context: CodegenContext,
INSERT_NODE,
PREPEND_NODE,
- CREATE_TEXT_NODE,
CREATE_COMPONENT_NODE,
SLOT_OUTLET_NODE,
effect: boolean
}
-// TODO remove, no longer needed
-export interface CreateTextNodeIRNode extends BaseIRNode {
- type: IRNodeTypes.CREATE_TEXT_NODE
- id: number
- values?: SimpleExpressionNode[]
- jsx?: boolean
-}
-
export interface InsertNodeIRNode extends BaseIRNode {
type: IRNodeTypes.INSERT_NODE
elements: number[]
| SetDynamicEventsIRNode
| SetHtmlIRNode
| SetTemplateRefIRNode
- | CreateTextNodeIRNode
| InsertNodeIRNode
| PrependNodeIRNode
| DirectiveIRNode